串口是嵌入式装备调试开发必备的硬件模块,嵌入式装备最经常使用的串口协议是RS232,标准9针串口,这是由RS232标准协议文档定义的。
串口采取插针方式连接,接口两端1个是插针,1个是插槽,也就是我们常说的公头(插针)和母头(插槽),只能说这个比喻真是太邪恶了。。。
PC机都会有1⑵个串口,1般是使用公头,装备号是COM1 COM2。
但嵌入式装备在硬件设计时其实不会规定必须使用哪一个,有的是公头,有的是母头,这就致使了串口线直连和交叉之分,使用直连串口线 还是交叉串口线,确切有点乱。
要说清楚这个问题,首先从公母头的定义说起。从网上找到的引脚定义图以下:
公头串口引脚定义是从左侧开始计数,母头串口引脚定义是从右侧开始计数。
首先我感觉要明确1点的是2台装备串口相连最基本的原则:
保证2台装备串口的收发引脚交叉相连,即装备的发送引脚与另外一台装备的接收引脚相连,RX与TX交叉相连,其余引脚还是逐一对应。
作为嵌入式装备的调试串口,波特率1般为115200,距离也就是1米左右,这样的数据压力其实不需要流控制。9针全功能串口中只需要保证RX TX GND连接正确便可,其余引脚都是用作流控。
大部份嵌入式装备不会引出串口插座,为了节省空间仅仅给出RX TX GND 3个引脚。我们需要用线与PC串口线的TX RX GND相连便可。
仔细的同学根据公母头引脚定义和连接原则可能看出1点问题来了,根据这个引脚定义,公母头对接,明显的是RX接RX,TX接TX啊,跟连接原则不1致啊。
这里只能说公头跟母头定义方向不1致了,公头定义是自己的引脚定义,而母头定义,特别是RX TX引脚定义是以公头方向来定义的引脚,比如母头的数据输入引脚,含义是该引脚连接公头的数据输入引脚,该引脚实际上是母头的数据输出引脚,也就是说在这方面公母头引脚定义都是以公头为参考方向的。
这样的引脚定义保证了公头与母头相接,串口就可以正常通讯。
因此如果装备使用母头串口,我们只需要直连串口线(其实就是相当于延长线)连接便可,保证了RX与TX交叉相连。
但是如果装备使用公头串口,我们就需要交叉串口线了。
由于两端都是公头,如果使用直连串口线,可以想象插1起,2接4,3接3,肯定不行。
如何解决这个问题呢?
这就需要交叉串口线来帮忙了,它是在串口线内部将2,3引脚交叉,其余不变。
使用双母头交叉串口线连接两真个公头串口,这样公头引脚2,3与串口线母头的2,3相连,内部1转,变成3,2。另外一端串口线母头引脚3,2与装备公头的3,2相连。
终究就是将公头的2,3与母头的3,2相连!
如何辨别串口线是直连还是交叉?
万用表丈量串口线1真个引脚2与另外一真个引脚2是不是短接,是则是直连串口线,否则是交叉串口线。
所以1句话总结:
串口异性相接(公母头),使用直连串口线。同性相接(公公 母母),使用交叉串口线。
最后说明1点,在这里讨论都是标准的9针串口,也就是依照图引脚定义来布线连接,特定线序的串口,如公头插座但是依照母头引线,不在我们的讨论范围。
版权声明:本文为博主原创文章,未经博主允许不得转载。
上一篇 Android Studio 错误: 非法字符: 'ufeff' 及 Gradle不能自动查找xml自定义属性
下一篇 scrapy [boto] ERROR: Caught exception reading instance data URLError: