【发布时间】:2013-02-18 16:34:37
【问题描述】:
我正在为 Xilinx FPGA 编写异步通信控制器,我想省去弄清楚 x86 处理器发送数据的顺序的麻烦。
在主机端,我使用的 C 程序使用以下教程:http://slackware.osuosl.org/slackware-3.3/docs/mini/Serial-Port-Programming
另外,发送数据时是否可以在大端和小端之间切换格式?
【问题讨论】:
-
USB 是串行总线,帧中每个字段的最低有效位首先发送。您赋予数据字段中(最多)8192 位的含义完全取决于您。
-
@HansPassant 我已经有一个一次读取一个字节的模块。我想我真正要问的是,如果我发送一个整数,读取字节的顺序是什么?
-
在 CPU 级别,没有位顺序之类的东西。字节是并行传输的,这意味着将同时有效地读取一个字节的所有位。 CPU 和设备之间需要有一些东西来将位组装成字节,反之亦然。
-
不是由主机或架构决定的。数据包/有效负载的某些部分由协议确定,它们是什么,字节序无关紧要。除此之外,如果有一个有效载荷,那么它就是你选择放在那里的任何东西。如果您已经完成了系统工程,那么它也是非字节序的,有效负载布局已定义并且双方都简单地符合该有效负载。
标签: x86 embedded serial-port usb