急!请教下关于RS485串口通信的问题。
本帖最后由 happyDSQ 于 2013-01-31 09:33:54 编辑
简单描述一下手头的任务吧,这个项目需要的是通过一个485串口接收来自几个不同设备(PLC等)的数据信息,已知这些设备的通信协议不相同,数据包长度也不同,如何完整的识别出所收到的这些信息并且判断出数据包是否完整?请指教
任务
linux
串口
通信协议
plc设备
------解决方案--------------------有多种协议,每个协议都有协议头,协议头中包含后续长度(如modbus)
while(接收一个字节,保存到一个数组){
if(这个数组内容是一个/其中某个完整的协议头){
取出长度部分,备用.
跳出.
}else{
if(数组满了){
FIFO
}else{
继续
}
}
}
找个地方放接下来接收到的已知长度的字节.
小心相互干扰.如果几种设备的数据相互有交织,那可能就.....