4 关于设计中的几个问题
(1)下位机是循环发送数据的,在每一个报文发送出去后,要等待充足的时间再发送下一个报文。否则,可能出现上次报文未发送完毕,就装载下一个报文的情况。从而,造成报文丢失,甚至每次报文都不能成功发送。等待的时间与微处理器的时钟频率和报文发送的波特率有关。
(2)报文发送过程中可能会产生种种错误,CAN协议提供了成熟的错误检验机制。这些错误可能包括:CRC错误、应答错误、形式错误、位错误、填充位错误,引起这些错误的原因各不相同。对PIC18F258而言,每发生一次错误,CAN模块内部的错误计数器就会加1,一旦错误计数器的值大于255,就会进入总线关断状态,这时CAN总线将不能用来收发数据。它会等待128组连续的11位隐性位后,再恢复到正常状态。系统运行过程中不允许有间断,所以应当在进入总线关闭状态前,将错误计数器清零或恢复到允许总线正常工作的范围内。
(3)本系统中需要传输的数据,相对于CAN总线强大的功能而言是有限的。但是,考虑到今后系统的改进和扩充,必然需要更多的网络节点,也必然会传输更多的数据,所以,系统在设计时预留了很多软硬件资源,以备日后使用。
5 结束语
本文中的智能汽车系统,在普通汽车系统的基础上,进行了功能扩展,涉及到了人工智能领域的一些技术。上位机与下位机之间由CAN总线来传输数据,RS-232接口只与外围检测和控制设备相连,分工明确,不会造成串行总线过于繁忙,从而引起数据传输错误。
用CAN总线组建的通信网络,扩展性强、可靠性高、而且具有自诊断和监控能力,既提高了通信质量,又方便了软硬件设计。本例中所使用的PIC18F258单片机自带CAN总线接口,性能优越、价格低廉,必然会受到设计师的青睐。