基于TMS320F2812和USB100的CAN-USB总线通信系统设计
3.2 上位机软件编写
采用NI公司的LABWINDOWS/CVI8.0进行上位机控制界面设计,实现通过PC机发送和接收CAN总线系统的数据的功能。
由于USB100模块将USB接口虚拟成了RS 232标准的串口,程序要实现的任务是调用WINDOWS下串口函数,使得用户在CVI的界面下完成PC机数据的收发。该系统与PC机之间的通信主要通过调用LABWINDOWS/CVI函数库中提供的RS 232函数库,这几个函数在设计驱动程序中具体实现。主要的函数有:配置串口函数:int OpenComConfig(int COMPort,char deviceName[],long baudRate,int parity,int dataBits,int stopBits,int inputQueueSize,int outputQueueSize);将字节写入指定端口函数:int ComWrt(int COMPort,char buffer[],int count);从指定端口读入字节函数:int ComRd(int COMPort,char buffer[],int count);在PC机上通过相应控件启动相应端口函数,使得数据通过USB接口发送。
4 通信测试
系统测试时,利用CAN调试器作为一个CAN节点,并利用调试器自带的调试软件在下位机上显示。
首先,进行上位机通过USB接口发送数据,下位机通过CAN接口接收数据实验,CAN节点设置为扩展帧,帧格式为数据帧,帧ID为0x000000 82,下位机CAN调试软件以十六进制接收数据,发送的是字符‘1’、‘2’、‘3’、‘4’、‘5’,下位机接收到的是对应的ASCII码值0x31~0x35,以十六进制显示。
然后,进行下位机通过CAN接口发送数据,上位机通过USB口接收数据实验,CAN节点设置不变,发送的数据是0x31~0x35五个数据,上位机收到的是‘1’~‘5’五个字符。具体测试界面见图3和图4。本文引用地址:https://www.eepw.com.cn/article/156493.htm
5 结语
设计了一套USB-CAN总线通信模块,其中CAN控制器特别的使用了F2812内嵌eCAN模块,在实际应用中,该通信部分能有效,及时的与系统其他节点进行通信,较为有效地将DSP的高速处理能力和CAN总线的优良特性结合起来,并且硬件电路设计更为简单实用,采用C语言编程,提高了程序的可维护性,大大缩短了研发周期。
评论