本发明涉及总线通信,特别是涉及一种基于fpga的can、rs485等多种接口自适应切换系统。
背景技术:
1、随着嵌入式系统互联通信的高速发展,传统的rs232、rs422、等总线受传输距离、抗干扰能力、负载能力、传输速率的影响,逐渐制约了嵌入式系统的发展。
2、can总线系统是一种多主控的总线系统,在总线控制器的协调下实现两个节点之间大量数据的传输,由于can网络消息的发送是广播式的,即所有节点侦测的数据是一致的,因此,can总线非常适合控制信息和数据信息的传输。
3、can总线具有超长的传输距离,理论上限为10km,单条总线可负载110个节点,互不干扰,高波特率保证了数据传输速率。
4、rs485接口支持一个主机接多个从机,即为菊花链连接方式,通过通信地址区分不同的设备。
5、rs485的传输信号属于差分信号,这也带来了很多的通信上的优点:
6、a、抗干扰能力强:由于差分信号a/b是靠近走线,干扰噪声一般会等值,而其差值为0,即这种噪声对信号的逻辑意义不产生影响。
7、b、信号判断能力强:接收端的阈值判断点在两根信号线的正负交叉点上,作为判断逻辑0/1跳变的点(a电压大于b电压为逻辑“1”,反之为“0”,对信号的电压幅值要求低。
8、然而,现阶段没有成熟的多接口can、rs485自适应切换方案。同时现有总线通讯方案大多为一路信号需要一路控制脚,占用资源较大;另外,cpu控制多路信号时序可能存在误差,输出信号同步性较差。
技术实现思路
1、鉴于上述问题,本发明提供用于克服上述问题或者至少部分地解决上述问题的一种多种接口自适应切换系统。
2、本发明提供了如下方案:
3、一种多种接口自适应切换系统,包括:
4、fpga器件,所述fpga器件通过local bus总线以及pci-e标准与cpu建立通信连接;
5、第一总线收发器,所述第一总线收发器与所述fpga器件相连;
6、第二总线收发器,所述第二总线收发器与所述fpga器件相连;所述第一总线收发器与所述第二总线收发器用于实现不同类型通信总线的收发通信;
7、继电器组,所述继电器组包括第一继电器以及第二继电器,所述第一继电器与所述第二继电器以及第一通信总线、第二通信总线相连,所述第二继电器与所述第一总线收发器、第二总线收发器以及第一继电器相连;所述第一继电器以及所述第二继电器分别通过io相应接口与所述fpga器件相连;
8、其中,所述cpu配置有用于实现所述不同类型通信总线收发功能的驱动程序;所述cpu用于向所述fpga器件发送总线切换指令,以便所述fpga器件通过io口将所述总线切换指令发送至所述第一继电器以及所述第二继电器,所述第一继电器默认为第一总线导通状态,所述第一继电器以及所述第二继电器接收到所述总线切换指令后由初始状态切换至第二总线导通状态;
9、所述初始状态下所述第一继电器将所述第一总线收发器与所述第一通信总线接通且所述第二继电器悬空,当收到输出所述第一总线指令时,闭合所述第二继电器;
10、当收到所述第二总线输出指令时,切换所述第一继电器将所述第一总线转换为所述第二总线,再闭合所述第二继电器;切换为所述第二总线输出。
11、优选地:所述第一总线收发器包括glb2582收发器,所述第一通信总线包括rs485通信总线;所述第二总线收发器包括glb3053收发器,所述第二通信总线包括can通信总线。
12、优选地:所述驱动程序包括can驱动程序,所述can驱动程序采用发送ringbuffer,接收ringbuffer和用户数据ringbuffer三重数据缓冲结构。
13、优选地:所述can驱动程序包括can初始化模块、can通信帧发送和接收模块以及can通信帧的组包和解包模块。
14、优选地:所述can初始化模块用于确定can通信帧的帧格式、帧类型、每帧的数据长度、数据和报文识别码初始化格式、申请用于存放接受的通信帧的ringbuffer空间、对can寄存器进行配置;
15、所述can通信帧发送和接收模块用于can通信帧发送前完成通信帧的配置并对传输缓冲区状态进行判断,在发送结束前对传输完成状态进行判断,以便确保通信帧已完成发送;每次完成通信帧的接收通过设置命令寄存器释放接收缓冲区,以便确保后续通信帧的正常传输;
16、所述can通信帧的组包和解包模块用于将来自用户的数据分解成can通信帧,通过调用can通信帧发送接口将每一帧can数据发送出去,且将来自can总线通信帧中的数据部分进行组装拼接,将完整的数据反馈给用户。
17、优选地:所述帧格式包括扩展帧,所述帧类型包括数据帧,所述每帧的数据长度包括8个字节,所述数据和报文识别码的初始化格式为0。
18、优选地:所述驱动程序包括rs485驱动程序,所述rs485驱动程序用于提供波特率及其他参数配置接口功能、接收中断阈值可配置、超时中断功能以及数据收发功能。
19、优选地:所述fpga器件配置有若干可扩展接口,用于实现多路不同类型通信总线的扩展功能。
20、优选地:所述cpu还用于接收用户触发切换信息,根据所述切换信息生成所述总线切换指令。
21、根据本发明提供的具体实施例,本发明公开了以下技术效果:
22、本申请实施例提供的一种多种接口自适应切换系统,通过fpga来实现总线通讯以及对继电器的控制,节省了软硬件资源,同时提高了性能。在处理器自带接口无法满足资源需求时,通过fpga进行接口扩展,可以实现多路can总线、rs485总线通讯等功能。仅在上位机点击io口输出就可以实现can与rs485等不同总线的接口切换,极大地提高了效率。
23、当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
1.一种多种接口自适应切换系统,其特征在于,包括:
2.根据权利要求1所述的多种接口自适应切换系统,其特征在于,所述第一总线收发器包括glb2582收发器,所述第一通信总线包括rs485通信总线;所述第二总线收发器包括glb3053收发器,所述第二通信总线包括can通信总线。
3.根据权利要求2所述的多种接口自适应切换系统,其特征在于,所述驱动程序包括can驱动程序,所述can驱动程序采用发送ringbuffer,接收ringbuffer和用户数据ringbuffer三重数据缓冲结构。
4.根据权利要求3所述的多种接口自适应切换系统,其特征在于,所述can驱动程序包括can初始化模块、can通信帧发送和接收模块以及can通信帧的组包和解包模块。
5.根据权利要求4所述的多种接口自适应切换系统,其特征在于,所述can初始化模块用于确定can通信帧的帧格式、帧类型、每帧的数据长度、数据和报文识别码初始化格式、申请用于存放接受的通信帧的ringbuffer空间、对can寄存器进行配置;
6.根据权利要求5所述的多种接口自适应切换系统,其特征在于,所述帧格式包括扩展帧,所述帧类型包括数据帧,所述每帧的数据长度包括8个字节,所述数据和报文识别码的初始化格式为0。
7.根据权利要求2所述的多种接口自适应切换系统,其特征在于,所述驱动程序包括rs485驱动程序,所述rs485驱动程序用于提供波特率及其他参数配置接口功能、接收中断阈值可配置、超时中断功能以及数据收发功能。
8.根据权利要求1所述的多种接口自适应切换系统,其特征在于,所述fpga器件配置有若干可扩展接口,用于实现多路不同类型通信总线的扩展功能。
9.根据权利要求1所述的多种接口自适应切换系统,其特征在于,所述cpu还用于接收用户触发切换信息,根据所述切换信息生成所述总线切换指令。