微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 串行通信协议的可配置转换问题

串行通信协议的可配置转换问题

时间:10-02 整理:3721RD 点击:

目前存在的问题:
     主机( 计算机,PLC等)通过串口连接两台或多台通信协议不一样的仪器设备,而这些设备都是自定义协议,适合点对点通信.一般的解决方式是扩展主机的串口数量,分别连接外部设备,并编制不同的通信协议.如果用嵌入式设备作为通信处理机,更难以扩展串口.对编程人员来说工作量也比较大.
考虑的一种方案:
     通过双串口(RS232或RS485)中间设备,作为外部设备的协议转换器.把自定义协议转换为标准的MODBUS协议.然后通过RS485总线连接到主机的串口上.硬件上问题可能不是太大,主要是软件.一种方式是对每一种自定义协议编程,作为固件下载到协议转换器中.但这种方式作为一种产品,对用户来说用起来很不方便.
应用前景:
      有很多仪器设备都是自定义协议,厂家由于某些原因,不能修改设备中的程序.而对这些仪器设备进行集成联网又是很多仪器设备用户的需求.
需要解决的问题是:
  能否把自定义协议作为配置参数,通过管理接口对协议转换器进行配置.软件如何设计呢?欢迎大家交流讨论。



来自小组: 系统协同仿真

上面的意图与思路我没怎么弄明白,如果想要主机通过一个接口连接多个不同协议,不同接口的设备的话,。
可以考虑先将设备的接口(可能是232,可能是485,也可能是其他,can或者),全部转换为以太网,各个设备接口发出的数据全部封装到tcp帧中的data区域。然后在主机软件中读取data,当然这时候,这个data里面包含了一个id,来表示设备类型,上位机可以根据这个类型id选取相应的协议来解析数据,作出回应。
当然每个设备的协议之前应该写成了一个一个的子函数,直接通过id的不同,调用即可。
不知是不是这个意思,

是这个意思,进一步来说,就是,需要对你说的子函数进一步抽象成更统用的函数,实现通信规约中数据帧格式和双方通信握手过程的自定义配置。

如果说想写一个函数,然后通过配置参数来实现适应各种协议,这个可行性不大。
但是如果可以给每个协议写个子函数,生成一个函数库,用到那个调用哪个,那就很容易多了,opc,组态软件等都是采用这个方法巴。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top