b***i 发帖数: 3043 | 1 是这样,我们的串口数据是9位的,一串数据发出去,要求其中一个char的第9位置1,
其他都清零。
start, bit0, bit1, bit2, bit3, bit4, bit5, bit6, bit7, bit8, stop, start,
bit0, ....
而Linux是不支持9位串口的。幸好,串口有parity,我们可以在用户空间的软件发一个
char的时候,自己计算好parity,让它满足我们的要求。问题:
1. Linux串口驱动处理的时候,有没有驱动层的FIFO?因为我们需要每个char单独设
parity,如果有FIFO,这个信息就会遗漏。
2. 这个要往深层里说,我们其实有硬件的实现,是FPGA,我们可以在硬件里面建立
FIFO,包括parity,从而保证不丢失第9位。但是,这个没做过。另外,我们自己做串口
,是否需要给Linux 中断都不是很清楚。
3. 接收的时候,按照任意一种parity,那么一定会有错。能否保证所有数据都受到?
我们到不知在意接收到的第9位是什么,可以忽略第9位。
有能解答的吗?有思路也行 | h**********c 发帖数: 4120 | 2 do you know/need padding |
|