基于FPGA的PC/104-CAN通讯板设计
2.2 CAN多帧数据通信打包和解包技术
CAN通信数据传输采用短帧结构,每帧最多发送8个字节的有效数据,总线的有效传输速率很低,当在传输的数据量超过8个字节有效数据时,给用户编程带来了一定的困难。利用如图5所示的CAN的数据包格式,只需将待传输的数据进行相应的打包和解包操作即可实现数据的单帧和多帧传输,有效地简化了数据通信。本文引用地址:https://www.eepw.com.cn/article/191897.htm
采用如图5所示的CAN数据包格式,无论是单帧还是多帧传输,只要把数据填入相应的发送缓冲区即可,在接收方,则将数据解包并放入接收缓冲区即可。与上述数据包格式相对应,当CAN总线进行多帧传输时,其CAN的多帧数据传输帧结构如图6所示。
在图6中,当发送的有效数据个数不超过4个时,一帧数据即可传输;当有效数据超过4个时,则需要多帧传输。此处的地址变址是指从发送缓冲区所取的存放于该帧的第一个有效数据的存储地址相对于缓冲区首地址的偏移量,如第一帧中地址变址为4,第二帧中的地址变址是10。地址变址的设置,使得对数据包的解包和打包实现起来较容易。
3 结 语
该通讯板设计简单,只需一块FPGA,一个CAN控制器SJA1000T和收发器PCA82C250,为增强系统的稳定性,在通信通道上均采用光电隔离技术,保护PC机避免因地环流而损坏,增强系统在恶劣环境中使用的可靠性。该通讯板采用的CAN数据包格式提高了总线的有效传输速率,经测试达到500 Kb/s,提高了通讯板通讯的实时性。本设计方案已成功应用于工业控制器中,效果理想。
评论