车载信息系统终端的研究与设计
1.4 CAN总线节点硬件设计
本文引用地址:https://www.eepw.com.cn/article/271646.htmCAN总线节点采用微处理器+CAN控制器+CAN收发器的设计方案,这种方案虽然外部电路设计较为复杂,但是可以根据应用情况灵活地选择控制芯片,成本比较低。本次设计采用的微处理器是高性能、低功耗STC89C52,其内部资源完全可以满足系统的需要,CAN控制器和收发器分别是SJA1000和TJA1050T,为了提高节点的抗干扰性,在SJA1000和TJA1050T之间增加了2个光电耦合器6N137进行电气隔离。STC89C52与SJA1000主要通过数据I/O口相连[6]。SJA1000的片选引脚CS与STC89C52的P2.7相连。图2为CAN总线控制器和收发器的原理图。
2 车载终端的软件设计
论文设计的车载终端主要包括3个功能模块,分别是:(1)进行GPS数据的接收与解析;(2)车载终端与GPRS SIM900模块进行通信,实现上位机和车载终端之间的交互;(3)车载终端与汽车上的CAN总线节点进行数据交换,实现CAN总线协议与串口协议之间通信网关的功能。下面将详细介绍这几个功能模块的具体实现。
2.1 GPS和GPRS软件设计
2.1.1 GPS信息的提取
STM32有多个串口资源,使用串口1与SIM900通信,串口2与CAN总线进行数据交互。GPS输出数据遵循NMEA0183协议,其格式是数据中的经度、纬度和时间等信息都是用“,”隔开,通过判断“,”的个数就可以提取经度和纬度信息。同时还要判断GPS输出的数据是否有效,数据以“$GPRMC”开头并且第18位为“A”才代表数据有效,通过语句Compare_String(GPS_RxBuf, "$GPRMC", 0, 0, 6) == 1)&&(GPS_RxBuf[18]=='A'))来判断,在验证GPS输出信息有效之后才进行下一步的提取经纬度信息操作,否则直接过滤[7]。GPS信息处理流程如图3所示。
2.1.2 GPRS无线通信软件设计
SIM900可以工作在透明传输模式,也就是说不需要对数据进行复杂的封装,SIM900可以将接收到的数据直接通过网络发送出去。对SIM900的控制是通过AT指令来实现的,比较常用的透明传输AT指令有"AT+CIPMODE=1rn"、AT+CGATT=1rn"、"AT+CIPCCFG=5,2,1024,1rn"等等。
为了保证数据的安全性和解析的方便,通信双方之间定义了一个应用层协议,协议内容包括帧头、VIN号、帧类型、数据内容、校验和、帧尾等。帧头使用“$$”字符表示数据的开始,帧尾使用“&&”表示数据的结束。车载终端与监控中心之间的协议规定了帧类型及其对应的编码,车载终端所发送的数据包格式如下:
2.2 车载终端CAN通信设计
2.2.1 CAN总线节点软件设计
CAN总线节点的软件设计,主要包括初始化函数、查询发送函数和中断接收函数三部分,SJA1000初始化是在复位模式下进行的,主要设置时钟分频寄存器(CDR)、输出控制寄存器(OCR)等参数,然后查询状态寄存器的值,若发送缓冲区被释放,则可以进行数据的发送。接收过程是使CPU中断,若接收中断,CPU读取出接收缓冲区的数据,根据这三个函数可以实现CAN总线接点的数据收发功能[8]。
手机电池相关文章:手机电池修复
评论