图1 系统总体框图
是一款带隔离的高速CAN收发器芯片,该芯片内部集成了
所有必需的CAN隔离及CAN收发器件。
芯片的主要功能是
将CAN控制器的逻辑电平转换为CAN总线的差分电平,并
且具有DC 2500V的隔离功能及ESD保护作用,其是CAN
收发器的理想选择[2]。
2 CAN总线收发模块的硬件设计
CAN总线收发模块的硬件结构如图2所示。
CAN总线
(1978-),男,江西宜春人,研究生,工程师。
研究方向:汽车电子项目管理。
公飞(1989-),男,山东临沂人,本科,助理工程师。
研究方向:汽车电子硬件设计。
收发模块的主要功能是控制开关和与RS232进行数据通信,开关可以用来控制现场设备的运行,后者可以方便与外界进行通信,提供通讯接口。
其硬件结构节点可以划分为最小系统模块、功能模块。
电源
STM32的工作电压(VDD)为2.0~3.6V[3]。
通过内置的电压调节器提供所需的1.8V电源。
当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源。
使用电池或其他电源连接到VBAT脚上,当VDD断电时,可以保存备份寄存器的内容和维持RTC的功能。
VBAT脚也
图3 设置时钟流程图
2.2 开关和RS232功能模块
该节点具有两个功能,控制开关状态和与RS232通讯,开关选用八个TX2-5V继电器,两片MC1413作为驱动芯片,MC1413可以实现单片机端口电压到12V电平的转换。
与RS232通讯部分选用MAX232做为电平转换芯片。
2.3 CAN收发模块
CAN收发模块主要是CAN收发器,CAN收发器的常用型号有CTM1050,CTM1050是一款带隔离的高速CAN收发器芯片,该芯片内部集成了所有必需的CAN隔离及CAN
发器件。
芯片的主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平,并且具有DC 2500V的隔离功能及ESD保护作用。
该芯片符合ISO 11898标准,因此,它可以和
图2 节点硬件结构图
图4 CAN初始化流程图
选用的测试模式是环回模式,该模式下数据是自发自收的,即在发送成功的同时就接收到数据了。
标识符是标准标识符,11位,该设计的标识符是0x11,滤波器0,屏蔽位模式,关联到接收FIFO0。
3.2.2 数据收发及处理程序设计
数据收发及处理程序主要包括数据发送和读取、控制开关、串口初始化及串口的数据发送。
3.3 CAN总线数据发送和读取
CAN总线数据发送和读取的流程图如图5、图6所示。
3.4 与RS232通讯的程序
图5 数据发送流程图
图6 读取数据流程图
图7 串口初始化流程图
读取CAN总线数据成功后,把需要串口传输的数据送给串口进行发送。
设置串口的波特率为9 600bps,一个停止位,无校验位。
串口初始化流程图如图7所示。
关于串口发送数据的标准库函数fputc(int ch,FILE*f),使用半主机模式,默认输出到显示器,为使数据发送到串口,要避免使用半主机模式,需重新定义_sys_exit()。