本站小编为你精心准备了CAN总线通信系统模型分析参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
随着信息化进程的高速发展,在人们的工作、生活中电子产品无处不在,智能化的设备在给人们带来便利的同时也带来了信息安全隐患。特别是无线通信的普及,愈发为信息的泄露与传递提供了条件。can总线是汽车电子系统中最基本的通信总线,汽车上的电子模块通常以分布式的方式挂接在CAN总线上。总线上的每个节点都具备接收任何其他节点所的信息的能力,同时也具备向任何一个节点发送指令的能力。当汽车电子系统中某些CAN节点的MCU与无线模块相结合的时候,就可能将整个电子系统的工作状态通过无线的方式对外发送。外界亦可通过无线接口控制该CAN节点,并由该CAN节点向总线上发送数据,继而干扰总线上各节点的正常通信,甚至对其他节点乃至总控制器进行控制。本文设计了一套基于Wi-Fi后门控制的CAN总线通信系统模型,用于分析和研究基于CAN总线的系统及相关的后门控制。在该系统中,上位机界面控制的“主机”CAN节点向CAN总线上发送指令,“从机”CAN节点接收指令后按指令执行对电机的控制。在此基础上给从机添加基于Wi-Fi的无线收发模块,并通过更改从机中的固件,使其在执行任务的同时通过Wi-Fi向外发送自身运行状态、并可接收其他装置如手机等通过Wi-Fi发来的特殊指令,从而建立了基于Wi-Fi后门控制的CAN总线通信系统模型。
1相关知识与背景
1.1汽车电子系统中的CAN总线通信控制器局域网CAN是由ISO定义的串行通信总线。它最初出现在20世纪80年代末的汽车工业里,它的基本设计规范要求有高的位速率、高抗电磁干扰性,而且具有错误检测能力。由于CAN串行通信总线具有这些特性,它很自然地在汽车制造业以及航空工业中得到广泛应用。在汽车电子系统中,每个CAN节点都有独立的CAN控制器,各控制器分布在车身的不同位置。MCU能够采集传感器处的数据,或是向执行部件发送指令。各节点的信号都在CAN总线上传输,如图1所示。对于未做信息安全处理的CAN总线系统,任何一个节点都能够接收其他节点在总线上的信息,同时也可以向所有节点广播帧信号。这也就意味着针对通信环节的侦听、干扰以及非法篡改等攻击具备理论可行性。
1.2基于Wi-Fi的“透传”技术Wi-Fi作为目前最成熟、最好的无线网络技术,在人们的日常生活中已十分常见。无线、高速率、方便快捷的特点博得了许多用户和开发人员的青睐。随着家用无线路由器、车载Wi-Fi、手机平板电脑上Wi-Fi热点的普及,带有Wi-Fi接口的产品、工具有了越来越多的应用场合。随着集成电路设计业的飞速发展以及嵌入式技术的普及,许多新产品将Wi-Fi的物理层、数据链路层、网络层以及传输层的功能集成在一颗芯片中,或将其模块化,令其具备“透传”功能。如图2所示,用户只要将待传输的数据码流送入发送端,便可从接收端直接读取数据。而传输过程中的端口号配置、寻址、数据打包校验、编码解析等过程几乎不需要用户参与控制。“透传”技术的应用大大简化了开发和调试过程,Wi-Fi接口的模块化使其成为方便实用的嵌入式工具。
2模型设计
2.1系统模型的目标需求为了尽可能准确地反映后门通信系统的特点,并且为系统测试和研究提供完备的软硬件平台环境,该系统模型需满足以下特点:首先,一套完整的通信系统应能够实现信息传递,在该模型中上位机发出的指令能通过主控制器传递到从控制器中,并对受控单元部件进行控制。其次,后门控制功能在不影响正常通信的前提下,系统能够向外界发送自身的运行状态等相关信息,并且发送信息的方式具有一定的隐蔽性。最后,该系统能够接收外界发来的指令,并且使得整个系统的功能偏离正常功能。基于上述要求,本文从以下几点出发,设计搭建了集CAN总线物理传输、数据链路调试、控制器固件开发、上位机界面设计、受控单元运行监测、Wi-Fi后门通信为一体的系统模型。第一,该模型具有符合CAN总线通信协议的物理层硬件,能够保障CAN总线信号的正常传输;第二,具备CAN节点模型,即系统中包括可以充当主机节点、从机节点的控制器单元,以便模拟基于CAN总线的系统在收发数据时的状态;第三,具备完整的嵌入式固件开发环境以及相关函数库,以支持测试和研究人员编写调试测试用例、开发基于该平台的仿真固件;第四,具备基于PC的上位机界面及开发环境,用以模拟可视化的人机交互界面;第五,具备硬件受控对象,能够真实反映系统通过CAN总线的控制效果;第六,具有高普及率的Wi-Fi后门通信接口,方便与平板电脑、手机建立连接,接受其控制。
2.2系统结构如图3所示,系统由上位机、主控制器、从控制器、受控单元、后门接口以及后台控制器组成。上位机可提供人机交互界面,便于测试研究人员发出控制指令;主控制器对上位机发来的指令进行处理后转换成符合CAN总线通信协议的数据,又发送给从控制器;从控制器对CAN总线上收到的数据进行解析,按照预设的指令集控制受控单元执行相应的任务,与此同时将自身运行状态等信息编码后发送给后门接口;后门接口将从控制器发来的信息转换为Wi-Fi信号向外发送;攻击测试人员能够通过后台控制器接收从控制器发出的信息,并发送特殊指令以改变从控制器的工作状态。
3硬件电路实现
3.1主控制器节点电路主控制器节点的硬件电路如图4所示,主要包括8051型MCU、串口转USB芯片、LED七段数码管以及CAN总线接口。MCU的UART接口与串口USB芯片PL2303相连,从而使UART信号转换为USB信号,与上位机建立通路;MCU的P1.0~P1.3接口与CAN总线接口转换模块MCP2515相连,通过由固件控制I/O实现的四线制SPI接口,在CAN总线上收发数据。P0与P2两组IO接口分别与七段数码管的段选和位选相连,数码管用于显示主控制器收到上位机发出的指令号。MCU片上资源配置:定时器1用于选择串口波特率,配置为硬件自动加载模式,从而避免了软件加载带来的时间误差。串口配置为10位数码发送,包括8位数据、1位起始位和1为结束位;波特率为4800,当接收到第9位数据时向SBUF中载入数据,并产生中断请求。
3.2从控制器节点电路从控制器节点电路如图5所示,主要包括8051型MCU、CAN总线接口、LED七段数码管以及串口-Wi-Fi接口。MCU的P1.0~P1.3接口、P3.3接口与CAN总线接口转换模块MCP2515相连,通过由Firmware控制P1.0~P1.3实现的四线制SPI接口,在CAN总线上收发数据,P3.3作为MCP2515收到数据后向MCU发出的外部中断申请。P1.4~P1.7接口作为步进电机控制接口与受控单元模块相连。P0与P2两组IO接口分别与七段数码管的段选和位选相连,数码管用于显示当前从机所执行的指令号。MCU的串口与Wi-Fi模块USR-Wi-Fi-232-D2相连,作为后门接口的通信接口。MCU片上资源配置:定时器1同样用于选择串口波特率。定时器2配置TH0、TL0协同作为16位定时器,用于产生控制步进电机的脉冲间隔。P3.3引入的外部中断将提醒MCU读取CAN总线上发来的数据;串口触发的中断将提醒MCU读取Wi-Fi后门模块传来的数据;Timer0定时中断函数将改变步进电机的电平控制信号。
3.3受控单元受控单元硬件电路如图6所示,主要包括光耦隔离芯片、电机驱动芯片、续流二极管保护电路、42HS4004A4型两相四线步进电机以及转速传感器数显模块。从控制器的步进电机控制接口与光耦隔离芯片的输入端相连,光耦隔离芯片的输出端与电机驱动芯片的输入端相连,电机驱动芯片的输出端通过续流二极管保护电路,分别于步进电机的两相四个电极相连。数显传感器用于测量和显示电机的转速。
4软件代码实现
本套系统模型中的软件主要包括运行在上位机界面软件、运行在主控制器和从控制器MCU中的固件(也称嵌入式软件),以及运行在后台控制器上的应用软件。
4.1上位机软件上位机软件在Delphi环境下开发,界面上显示对电机基本操作的功能按钮。通过调用后台API、控制PC串行端口,通过USB线向主控制器发送指令。程序中所调用的资源层次如图7所示。如图8所示,上位机界面主要实现两类功能:上位机通过串行总线接口与主控制器建立连接、上位机向主控制器发送控制电机的指令。其中上位机与主控制器建立连接的过程包括打开端口、配置端口、关闭端口等操作;对电机的控制指令则包括启动/停止、加减速、复位等;与此同时,上位机界面上也将显示端口连接状态、电机转速档位等信息。上位机界面中“连接”按键所触发的软件流程如图9所示,包括确立端口号(返回端口指针)、打开对应端口、对端口进行配置(配置项包括波特率、传输数据长度、奇偶校验、停止位等)以及函数执行完毕后返回结果。控制指令所触发的事件函数中需要的参数有端口指针、数据地址指针、待发送数据字节数等。
4.2主控制器固件主控制器完成的主要任务包括从上位机的串行数据接口中接收数据,并将数据解析、编码后发送到CAN总线上。上位机和主控制器的信息交互指令编码如表1所示。主控制器的固件运行流程如图10所示,其中“各模块初始化”包括CAN模块配置、串口初始化配置、定时器初始化配置。完成配置后进入主循环,主循环轮询sRxflag标志位,当sRxflag为1时说明串口收到来自上位机发来的指令。在解析数据生成指令码的过程中,按ASCII码解析并为每条指令分配号。接下来将对应的指令号发送到CAN总线上,同时将发出的指令编号显示在LED七段数码管上。最后将sRxflag清零,再次进入轮询。sRxflag的置位是在串口引起的中断函数中进行的,并从Buffer中读取数据。
4.3从控制器固件从控制器完成的主要任务有:从CAN总线上读取主控制器发来的指令、将接收到的指令发送给后门接口、按照指令控制电机运行,以及接收后台控制器发来的特殊指令并切换到特定的状态。从控制器的固件运行流程如图11所示,其中各模块初始化包括CAN模块配置、串口初始化配置、电机及定时器初始化配置。进入主循环后首先判别gRxflag标志位,当其为1时表明从控制器收到CAN总线上发来的数据,MCU读取主控制器发来的数据后直接转发至串口。MCU对指令做解析之后判断后门是否处于开启状态,若后门处于开启状态,则从控制器LED数码管中显示异常的指令码,若后门处于正常状态,从控制器LED显示正常的指令码,对电机执行正常操作,然后将执行结果发送给后门接口。接下来将gRxflag清零。判断sRxflag标志位,若其为1,则说明收到了后台控制器发来的指令,对指令解析后,判断是否要执行后门开启操作,若需要开启,则修改后门状态标志位,否则执行其他操作。最后向串口发送执行结果,清除sRxflag,进入下一轮循环中。
4.4后台控制器界面后台控制器界面是运行在基于Android系统的手机、平板电脑或其他移动终端上的APP软件。第一,以可视化界面的形式向用户展示后台控制器从Wi-Fi接口收到的信息;第二,能够给用户提供输入待发送数据的窗口,用以向从控制器发送相关指令;第三,能够为用户提供配置工作模式、IP地址、端口号的机制。网络中有许多开放的调试工具和资源可供选择使用,本套系统模型中采用Android手机作为后台控制器,网络调试助手作为后台控制器界面,实现对从控制器的监控。图12中展示了本套模型中运行于Android手机上的网络调试助手界面。
5系统模型运行效果
正常控制运行状态下,操作人员通过上位机界面向系统发出开启、加速、减速、复位、停止等指令,电机按照上述指令运行;转速传感器上显示当前电机的转速;主控制器、从控制器的LED七段数码管上分别显示主控制器收到的指令号以及从控制器正在执行的指令号。后门控制异常状态下,后门Wi-Fi接口模块上电,后台控制器与Wi-Fi接口建立连接;运行后台控制器上的APP软件(网络调试助手),可在上位机发送指令时对系统进行监控;通过后台控制器对从控制器发送特殊指令,使系统进入异常状态,此时从控制器虽能接收到主控制器发送的指令,但无法控制电机运转,LED七段数码管上显示的指令号也与主机所发送的指令不符;当通过后台控制器对从控制器发送解锁指令,系统恢复正常运行状态。运行在异常状态下的模型如图14所示。
6结束语
本套系统模型完整、真实地展示了CAN总线通信、控制系统工作时的状态,并且成功实现了后台控制器通过Wi-Fi无线通信接口对系统中CAN节点的监控,揭示出了基于Wi-Fi后门的CAN总线通信系统中可能存在的问题与信息安全隐患。与此同时,该系统模型中所采用的技术、开发环境、测试设备、受控对象等都可为与后门相关的信息安全课题提供相关的实验对象、研究工具以及测试平台。
作者:张永华 高宏玲 杨玚 尹文婷 单位:工业和信息化部计算机与微电子发展研究中心