2.2 软件设计
软件设计通过Microchip的开发工具Mplab用汇编语言编制,主要包括初始化程序,CAN接收中断服务程序,USART接收中断服务程序,主程序。应用层通信协议转换程序等。
初始化程序用于设置CAN模块的通信波特率,工作方式,接收邮箱和发送邮箱,对应的接收过滤器和接收屏蔽器,以及发送的优先级等。其流程图如图5所示。
图5 初始化程序
CAN接收中断服务程序主要用来接收CAN 总线传输过来的数据帧,并进行帧校验,如果出错则要求重发,若数据帧正确接收,则将完整的数据帧存入到提前开辟的环形缓冲器中,为后面的数据处理和协议转换做好准备。其流程简图如图6所示。
图6 CAN接收中断服务程序
USART接收中断服务程序主要用于接收来自RS-485总线的串行数据。并将完整的数据帧传送到另外一个环形缓冲器。其流程图和设计思想与CAN 接收中断程序类似,不再例举。
协议转换程序需要参照现场RS-485系统原有的协议,然后由用户通过配套软件对通信帧的格式进行相应的设置。进行配置时PC 机必须通过RS-485接口访问RS-485/CAN智能转换器,通常PC机的RS-232接口必须使用RS-232/RS-485转换器。设置成功后,就可以实现RS-485与CAN通信帧格式的相互转换。
主程序部分比较简单。主要为调用初始化程序,扫描发送缓冲器是否为空,不空则在空闲时根据其优先级将CAN通信帧或RS-485串行通信帧发送出去。然后不断扫描,等待中断的产生。
3 结语
利用RS-485/CAN 智能转换器,实现了RS-485网络与CAN网络的互连,而且智能转换器的通信波特率可调,工作模式可以控制,对于不同协议的RS-485网络,只需通过软件对转换器进行相应的初始化设置即可,而不必对硬件进行改动。可以满足绝大多数场合的使用要求。但是这种利用RS-485/CAN智能转换器实现RS-485网络和CAN网络互连的方案只是一种过渡性的方案,互连后整个系统的性能要受限于RS-485网络,不能充分体现CAN系统的优越性。该方案仅适合新系统与旧系统并存,整体性能要求不太高,新旧系统运行机制差别不大的地方。