当前位置: 技术问答>linux和unix
COM1串口57600接收数据转用新协议打包后再以115200从COM4实时发出,怎么实现呢,应用层可以吗?
来源: 互联网 发布时间:2017-05-21
本文导语: 麻烦大咖们指点一下,本人以前都是基于无系统单片机系统开发,基本没有Linux经验,先行谢过各位了。 如题在三星6410开发板上,系统linux 2.6.28,需要实现如下功能, UART0接收实时图像扫描数据,使用GPRS...
麻烦大咖们指点一下,本人以前都是基于无系统单片机系统开发,基本没有Linux经验,先行谢过各位了。
如题在三星6410开发板上,系统linux 2.6.28,需要实现如下功能, UART0接收实时图像扫描数据,使用GPRS发送给服务器。在UART0波特率为57600,接收数据后需要按照服务器端要求拆分成最大512bytes每帧的包,添加10个字节左右的包头/尾/checksum等。GPRS使用SIM300模块,连接在UART3上,波特率为115200。要求数据尽可能实时发送到服务器。
因为需要逐字节计算checksum,打算每次read一个byte,但是GPRS每次发送数据都需要收到服务器的OK信号后才可以开始,加上包头的10个byte,逐字节发送就会导致UART0部分数据丢失读不到。如果使用buffer,读取512字节后再通过GPRS发送,同样在GPRS发送的时候会导致UART0部分数据丢失读不到。如果在底层直接操作UART口,这样的功能很容易实现。但是在linux应用层怎么实现呢?需要在驱动层开发吗?谢谢大家指点~~~
如题在三星6410开发板上,系统linux 2.6.28,需要实现如下功能, UART0接收实时图像扫描数据,使用GPRS发送给服务器。在UART0波特率为57600,接收数据后需要按照服务器端要求拆分成最大512bytes每帧的包,添加10个字节左右的包头/尾/checksum等。GPRS使用SIM300模块,连接在UART3上,波特率为115200。要求数据尽可能实时发送到服务器。
因为需要逐字节计算checksum,打算每次read一个byte,但是GPRS每次发送数据都需要收到服务器的OK信号后才可以开始,加上包头的10个byte,逐字节发送就会导致UART0部分数据丢失读不到。如果使用buffer,读取512字节后再通过GPRS发送,同样在GPRS发送的时候会导致UART0部分数据丢失读不到。如果在底层直接操作UART口,这样的功能很容易实现。但是在linux应用层怎么实现呢?需要在驱动层开发吗?谢谢大家指点~~~
|
两个线程,一个收,一个发
|
串口操作+多线程操作
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。