锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

一篇关于串口的经典文章

时间:2023-01-24 07:00:00 线串接56k电阻

MODEM它是用户接入互联网的重要设备。
宽带光纤传输虽然已经在网络干线上普及,但最现实的接入方式是铜线连接(电话线、双绞线、电缆)。
此外,随着无线技术的发展,越来越多的固定/移动用户使用无线接入。
调制解调器应用于铜线连接和无线连接,以便数据信号能够在信道内传输。
MODEM对外界面是串口,这是串口I/O用于传输控制信号、状态信号、数据AT指令及其响应。
虽然MODEM种类繁多(56K猫/GPRS/CDMA等等),但部表现为一个标准的串口,只要你清楚地理解这个串口,那么你就可以把所有的MODEM一网打尽。
************* * (1) UART * ************* 一般来说,我们称这个串口为UART(Universal Asynchronous Receiver and Transmitter 通用异步收发器)。
其中,RT它是接收和发送的英文缩写,可以接收和发送,也是串口。说白了口I/O口的意思。
A表示异步模式。
该模型适应性强,对时钟精度要求低(成本低)。
在每次发送字节数据之前,首先发送一个开始同步时钟相位,抖动误差不会在整个通信过程中积累,只会影响单个字节的传输单元。
U意思是通用。
为什么一定要冠以通用二字?这个定语想强调什么? 很久以前,在计算机出现之前,就出现了串口设备。
例如:MODEM、电传打字机、工控设备、数传机等。
便于设备互连,EIA制定了RS232标准化规范,采用DB25接口连接DTE(Data Terminal Equipment数据终端设备)和DCE(Data Communications Equipment数据通信设备)。
后来,个人计算机出现了。(PC毫无疑问,这些现有的设备已经成为最初的外设。为了连接到主机,制造商自然选择了标准RS232串口。
在这个标准中,DB25接口支持同步和异步两种工作模式,采用D型接插件,防止插反。
设计兼容性好,使用方便,但厂家不买账,更倾向于进一步降低接插件的尺寸和成本。
通过删除DB25中未使用的引脚和支持同步模式的引脚DB25改造成只有9条线,只支持异步模式,体积小
杀靖偷腄B9。
最初的情况比较混乱,因为DB9只给出了信号范围,但没有指出引脚和信号之间的对应关系DB9也不是RS232规范定义的接口标准,因此每个制造商只能自行定义相应的关系。
后来,IBM制造的PC机器成为行业标准,DB9对应关系逐渐统一IBM现在使用的定义DB9就是遵守的IBM的定义。
随着时代的发展,计算机越来越流行,外设种类也越来越多,有些非RS232串行设备需要连接到主机,这需要主机提供更多I/O口。
如果为每个新设备提供一个I/O,这显然是不现实的,因为主机后面板的位置有限,不可能容纳太多的接口。
幸运的是,外面I/O一般分为两类:并口和串口。
若复用现有的RS232串口接入非RS对于232设备,可以使用有限的接口连接大量设备。
一个有趣的现象是早期操作系统DOS和ROM BIOS提供的通信例程只支持RS232串口标准,即使是简单的字节收发RS232应用程序应该先检测DSR、DCD、CTS信号是否有效,如果不符合条件,数据将不会发送到TXD上。
有两种方法可以解决这个问题:1。旁路系统提供API函数,自己直接操纵硬件实现非RS232操作;2.短接头中的一些RS232控制信号线,误认为系统通信例程是RS232设备,使非RS232的设备满足RS232标准子集要求。
现在,PC支持机器上的串口RS232应用支持非RS232应用,一般串口指的是这个意思。
RS232规范限制了速度和距离。当码元畸变小于4%时,传输距离上限为15米;速度上限为19200。
目前,在PC机器上的串口都突破了RS限制232标准,速度可达115200甚至更高。
在软件上,可以选择配置是否支持硬件流量控制,是否检查DSR、DCD、RI等待输入信号。
可以说,现在PC串口,来源于RS232,但并不局限于其局限性,越来越向串口方向发展。
UART到目前为止,可以用于一般目的的异步串行I/O口。
综上所述,我们可以看到计算机串口发展的一般过程: 原始串口设备(个人计算机)出现在史前 --> EIA制定RS232统一标准,DB25出现 --> 为了引入串口,个人计算机诞生了,DB9.软硬件仍然遵循RS232标准 --> 引入新的非RS232串口,将原来的RS232口改为通用目的UART,不遵循软硬件RS232规范。
PC串口有多个名字:串口,RS232口、COM口(通信口),异步口,UART等等,它们是不同历史时期的产物,一直沿用至今,让现在的人感到有些莫名其妙。
最开始PC机器连接的串行外设是RS232设备,就叫RS232口。
该设备主要用于通信MODEM,PC上就称为COM口。
现在连非RS232设备也接了进来,叫UART吧。
然而,新名字没有旧名字那么有名,有些人的习惯不能改变,而且计算机发展太快,旧名字没有消失,新名字出现,每个人都有自己的粉丝,通常,所以叫。
就在UART在准备统一江湖时,制造商再次对其速度、灵活性(软件可配置)和体积不满意,并推出了它USB串口和1394串口。
现在越来越多的笔记本电脑被取消了UART因此,有不少网友发出没有串口,我谁与归的叹息,历史进步的步伐无法阻挡,古今有多少事,都是付笑谈,USB取代UART是后话,暂时不表。
************************* * (2) DB9引脚的定义和表示 * ************************* DB9遵循IBM定义,所有输入输出方向都站在DTE角度说的。
1--载波检测DCD 2--接收数据RXD 3--发送数据TXD 4--数据终端就绪DTR 5--信号地GND 6-数据设备就绪DSR 7--请求发送RTS 8--清除发送CTS 9--振铃指示RI 在TXD和RXD上:(一般驱动器件都是反相器,用负表示"1",用正表示"0",负逻辑是可以理解的。
) 逻辑0(SPACE 空号) = 3V~ 15V 逻辑1(MARK 传号) = -3V~-15V 在RTS、CTS、DSR、DTR和DCD等控制线: 信号有效(接通,ON状态,正电压,高电平)= 3V~ 15V 信号无效(断开,OFF状态,负电压,低电平) = -3V~-15V -3V到 3V之间的电平无意义,称为死区,不应该处于这个电压范围。
3V以上,-3V以下区间属于过渡区,尽量不要使电平落入此区间,以使判断更可靠,最好 12V以上,-12V以下。
一般驱动器件为 -12V电压。
在工程中,电压不可能如此理想,需要在一定范围内进行判断,一些半导体设备不容易升压 -15V,同时,大摆幅电路的速度也不高。
以上说的是RS232电平在未驱动的芯片引脚上TTL电平: 信号有效 二进制0 = 0-0.3V 信号无效 二进制1 = 3.3V/5V 如果不经RS232直接驱动芯片MCU和Modem模块(TTL电平)连接时,应注意电平兼容性。
**************************** *
(3) DB9引脚信号详细说明 * **************************** 注:硬件只提供机制而不提供策略,RS软件实现了232标准,硬件只提供标准的硬件信号线。
例如,载波检测由软件完成,硬件只提供DCD引脚信号。
硬件流控并非说将RTS和CTS在接收到相应的引脚位置时,硬件可以自动实现流量控制硬件流量控制是通过软件实现的。之所以强调硬件一词,是因为硬件为软件提供了指示信号的硬件通道,而软件流量控制不使用硬件指示信号。
RS232规定的是DTE和DCE现在大多数设备都嵌入了设备之间的连接CPU,可以主动发送数据,因此成为DTE设备,DTE和DTE的连接RS232里没有规定,需要使用交叉线。
有兴趣的读者可以试着分别剪9根线,看看会发生什么。
看拨号软件会弹出什么样的错误信息。
TXD(Transmitted Data发送数据),RXD(Received Data接收数据)-数据传输物理通道,DTE和DCE这个引脚可以一一连接,两个DTE设备需要交叉连接。
所谓收发全站DTE角度说的。
可以在这两个引脚对应的芯片引脚上连接LED数据收发时,指示灯会闪烁。
这两个信号连接芯片内的并/串、串/并电路,先处理低位,硬件不受其他硬件控制信号的影响。
GND(Ground地)-地参考点。
RS232是不平衡连接,不是差异,所以抗噪性不好,收发信号需要高压 15V/-15V,摆幅大,速度低。
使两端电位参考点一致,避免地回路。
DCD(Data Carrier Detect数据载波检测)-当语音通路建立时,两端Modem单频发送单频载波,以便对端实时检测链路通断。
只要检测到载波信号,DCD就有效。
该信号无效时用于触发no carrier向上层传递事件lower down新闻机制,使PPP复位,并根据策略决定是否断线重拨。
在PPP收发数据时,应实时监控DCD信号,只有当DCD只有在有效时才能进行收发操作。
DTR(Data Terminal Ready数据终端准备好),DSR(Data Set Ready准备好数据设备-虽然通过RXD和TXD您可以收发数据,但在发送数据之前,应确定对方是否准备好,以避免不必要的数据丢失。
DTR和DSR主硬件流控采用引脚。
DTR有效表示DTE设备可以接收数据,DSR有效表示DCE该设备可以接收数据。
DTE向DCE在发送数据之前进行检测DSR如果信号无效,也不会发送,DCE向DTE发送数据发送数据之前进行测试DTR是否有效。
这是RS232规范要求。
MODEM并没有使用DTR和DSR实现一般意义上的硬件流控。
DTR在整个通信期间保持有效,DSR在MODEM发出载波后立即有效/有效DSR理解是简单地将其视为电源开关指示或拨号指示),并在整个通信过程中保持有效。
DTR或DSR通信过程将随时终止。
有些人可能很奇怪RS为什么这两个信号在232标准中明确用于主硬件流控?MODEM但是这样安排时序呢?MODEM根本没有按照RS22的规范将DTR和DSR用于硬件流控,它只使用这两个信号指示DTE和DCE已经上电,可以开始工作。
当然这在某种意义上也算是流控,但它确实不是RS232所指的那种,MODEM是通过RTS和CTS实现的硬件流控。
 DTR和DSR的这种使用方法最初是由贺氏Hayes公司在Smart Modem里最先采用的,后来贺氏Hayes MODEM成为行业事实上的标准,其他公司参照贺氏设计的时序生产与其兼容的MODEM,甚至连AT指令都一样(大家一起抄他呗)。
因此,现在的MODEM都不遵守RS232在这两个引脚上定义的用法了。
 Data Terminal和Data Set是两个过时的名字,这两个术语已经被废弃了(谁还记得数据终端和数传机啊?
缇统晒哦耍诵碓诓┪锕莼鼓芗绞滴?。
RS232-D版本中起用DTE ready和DCE ready两个新名字。
虽然新名字表达的意思清楚多了,但可以肯定的说,旧名字仍将继续使用。
 RTS(Request To Send请求发送),CTS(Clear To Send清除发送)------------半双工时,用于收发模式切换。
属于辅助流控信号。
半双工的意思是说,发的时候不收,收的时候不发。
那么怎么区分收发呢?缺省时是DCE向DTE发送数据,当DTE决定向DCE发数据时,先有效RTS,表示DTE希望向DCE发送,一般DCE不能马上转换收发状态,DTE就通过监测CTS是否有效来判断可否发送,这样避免了DTE在DCE未准备好时发送所导致的数据丢失。
 全双工时,这两个信号一直有效即可。
 以上所述是RS232标准的定义,然而在MODEM中,完全没有遵守这个规范,而是将其用于硬件流控。
很多人根据RTS和CTS的字面意思理解他们的用法往往百思不得其解,再加上半双工/全双工,就更加云里雾里了。
RTS和CTS在MODEM中的用法与他们字面的含义没有任何关系,他们已经由贺氏公司重新定义了用法。
以下是网友dengm给出的程序,详细说明了RTS和CTS在MODEM里的用法。
RTS用于指示本端是否可以接收数据,CTS指示对端是否可以接收数据。
 www.21ic.com dengm 发表于 2005-1-14 07:52 侃单片机 PC端处理: 本端发送 当 发现(不一定及时发现) CTS (-3V to -15V)无效时,停止发送, 当 发现(不一定及时发现) CTS (3V to 15V)有效时,恢复发送; 本端接收 0 ) 当接收buffers中的bytesN 时,给 RTS 无效信号(-3v to -15v); MODEM端处理: 同上,但RTS与CTS交换 图1表示DTE向DCE发送数据时的流控过程。
DTE和DCE一般都会有一定容量的FIFO(先入先出)缓冲区,例如16字节。
DTE以设定的波特率(如115200)向DCE发送数据,当DCE的FIFO缓冲区快满时,DCE使CTS无效,DTE软件检测到此信号后停止发送。
同时DCE继续向电话线上发送数据,一旦发出,DCE的FIFO就变成不满,CTS恢复有效,允许DTE继续写入。
串口波特率只是接口速率,不是Modem的实际传输速率,一般发送都快于接收,为避免溢出丢失数据,均需要接收端控制发送端发送速度,即流控。
 DCE向DTE发送数据用RTS进行流控,过程与上面讲的类似。
 流控在通信里的作用非常重要,它能使发送和接收保持均衡,避免数据因为收发速率不匹配而丢失。
例如:在TCP协议里,当数据丢失时,总是假定丢包是由于网络拥塞引起的,此时采用拥塞避免算法,超时时间加倍,拥塞窗减半,尽管此时信道正常,有数据可以发,但因为拥塞窗减小导致不能发送,而且超时等待时间加倍,TCP的性能将急剧下降,测试报告不会好看。
信道上因为误码引起的丢包和网络上因为拥塞造成的丢包都是不可控的,而收发速率不匹配造成的数据丢失完全可以通过流控避免,因此,在接收速率小于/等于发送速率的地方都要使用流控。
硬件流控不能跨越设备,软件流控可以实现端到端控制。
 注意:MODEM是否配置硬件流控可以通过AT指令动态修改。
在不支持硬件流控时,这两个信号在数据传输状态一直有效。
此时可以无流控,或者通过ON(0x11)/XOFF(0x13)软件流控。
 RI(Ring Indicator振铃指示)------------这个引脚用于指示是否有90V铃流信号输入。
如果检测到振铃信号,MODEM将周期改变RI引脚电平,变化频率与振铃频率无关,DTE设备检测RI上的电平变化,并计数,一旦符合规定次数,就发出DTR信号,指示DCE摘机应答。
以前的“笨猫”没有CPU,所以需要DTE帮助判断是否有拨入,现在的“聪明猫”(Hayes Smartmodem)有CPU,完全可以自动应答,我看,这个信号以后就可以省掉了,毕竟RS232是很早以前的标准,已经过时了,不必拘泥于原来的规范。
 DTE DCE AB HJD04D大型程控电话交换机 --------- ---------- 电话线 --------- ST-BUS ------------- ST-BUS ------------ E1 |FIFO缓冲|---->|FIFO缓冲|--------->| SLIC板 |<------->|DSN交换网络|<------>|DTP数字中继|<----->经汇接局到另一端局的相应电路 --------- ---------- --------- ------------- ------------ (左图逆序) RTS--> <--CTS ^ | ^ | | | 公共资源 ---------------------------------------------------------- 铃流源 | 信号音(拨号/回铃/忙/催挂音) V DTMF双音多频收号器 图1 硬件流控图(DTE向DCE发送数据) 如图1,MODEM的另一端连接电话线,通过AB线与对端(局端)程控电话交换机SLIC板(用户线接口电路)相连,需要实现用户线信令(摘机、挂机、振铃、拨号音、忙/催挂/回铃音等),还有用于判断链路通断的载波检测。
 以上讨论的DB9串口是很早以前设计的,随着技术的发展,MODEM越来越聪明,软件完全可以取代一些硬件控制连线,甚至重新设计MODEM串口。
如果今后遇见不符合现在定义的MODEM接口是不足为奇的。
 **************************************** *
  (4) 串口交叉连接方式和MODEM工作时序 * **************************************** 交叉连接用于两个DTE设备互连 图略 (1)最简连接 用于调试目的等非RS232应用,通信软件不能检测DSR、DCD、CTS信号 (本端)--(对端): (2)--(3) (3)--(2) (5)--(5) 1--4--6--7--8--9悬空 (2)RS232连接 用于屏蔽RS232通信软件的检测,早期BIOS和OS通信软件只能在符合RS232规则的接口线上运行,此种接法可使其只用3根线即可正常工作。
 短接本端 1--4--6;短接本端 7--8 (本端)--(对端): (2)--(3) (3)--(2) (5)--(5) 9悬空 (3)完全连接 忽略DCD和RI,带硬件流控的交叉连接 (本端)--(对端): (2)--(3) (3)--(2) (5)--(5) (7)--(8) (8)--(7) (6)--(4) (4)--(6) 1和9悬空 (4)NULL MODEM连接 用于模拟两个DTE之间通过MODEM连接。
在PPP开发时,可以节省大量通信费用。
 (本端连接)--(对端连接):(2)-(3) (3)-(2) (7--8)--(1) (6--9)--(4) (5)--(5) (1)--(7--8) (4)--(6--9) (9--6)--(4) MODEM的工作时序: 在整个通信过程中,DTR和DSR及DCD必须一直有效,RTS和CTS用于硬件流控(软件实现的),RTS有效时指示DTE可以收,CTS有效时指示DCE可以收(详见引脚说明)。
 当电话打入时,交换机SLIC(用户线接口电路)板发出90V振铃信号,MODEM识别后发出RI信号,RI变化频率与振铃频率无关,PC机对RI变化记数,达到触发值时,PC机发出DTR信号通知MODEM摘机应答。
MODEM发出载波后有效DSR,通知PC已摘机。
当接收到对端载波后,DCD有效,指示话音通道连通。
通信完毕任一方停止载波,导致两端载波消失,PC检测到DCD无效,就使DTR无效,MODEM随后使DSR无效响应之,一次通信过程结束。
 现在的MODEM一般都可以自动应答,RI信号可忽略。
当MODEM识别出振铃后,摘机应答并发载波,同时有效DSR,通知PC机有拨入,PC随即有效DTR,允许拨入。
当收到对端载波,MODEM有效DCD,指示话音通道连通。
通信完毕任一方停止载波,导致两端载波消失,PC检测到DCD无效,就使DTR无效,MODEM随后使DSR无效响应之,一次通信过程结束。
 PC机拨出时,先有效DTR,指示MODEM摘机拨号,MODEM回应DSR有效,在识别出拨号音后拨号,然后在回铃音结束后发载波,一旦收到对端载波,MODEM有效DCD,指示话音通路连通。
此后,就可以进行PPP协商了。
通信完毕任一方停止载波,导致两端载波消失,PC检测到DCD无效,就使DTR无效,MODEM随后使DSR无效响应之,一次通信过程结束。
 ************************* * 
 (5) 硬件学习方法总结 * ************************* 我认为学习硬件最重要的是抓住4个关键点:引脚、时序、寄存器和协议。
硬件的参考资料就是数据手册(datasheet),虽然大部分由英文写成,但是科技英语并不象想象中那么难,而且数据手册的内容编排有规律可寻。
一般,先介绍总体特点概述(卖点),顺便做一下公司广告(什么leadership一类的),然后是结构/功能框图、引脚说明、时序分析、寄存器说明、硬件所实现的具体协议(USB、PCI、E1等)、应用范例demo、直流/交流特性、封装、订购信息、联系方法等,手册里往往还会总结一些图、表、关键字目录索引,方便读者阅读。
 ------ |引脚| ------ 引脚是对硬件工程师最重要的信息之一,务必将其背记下来。
背下来的好处多多,基本上扫一眼图纸就能猜出芯片是干什么用的;对一些不常用的设计技巧能马上发现,进而学习之;能立即指出明显的低级错误;能轻易区分不同型号相同种类的芯片;有利于不断积累硬件经验,熟能生巧。
总之,背下引脚能大大提高工作效率,不必频繁查书,不必中断思路,让精力集中在应用设计上。
 面对几百个引脚的芯片,看似无法记住?
翟蚣虻asy。
譬如:地址线32根、数据线32根,电源5根、地线20根,一会儿就记住了89根引脚线,然后按功能记I2C、SPI、ST-BUS、USB、JTAG等固定用法的引脚线,不管用在哪个芯片上,这些引脚种类和功能都相同,有时,只要记住功能就能把相关引脚一一背出,或者只须记住差异点即可。
一旦背下一个芯片,那么与之类似的一系列芯片就都不在话下了。
 万事开头难,一旦习惯了,随时记住几百个引脚的芯片也不是难事,这是专业硬件工程师的基本功。
 ------ |时序| ------ 时序是硬件工程师获得的另一个重要信息,务必反复咀嚼回味。
时序图可以清楚全面地展示硬件的工作过程,从中我们可以得到想要的细节。
硬件设计的一大任务是抑制干扰噪声,通过分析时序可以找到最佳的处理方法。
比如:在数据的中点采样,可以获得前后各50%的抖动裕量;通过满足建立/保持时间,使得数据采样正确。
 一般来说,时序图展示的是理想情况下的位置关系,实际电路中还要受到生产工艺和现场情况的影响。
比如:温度、湿度会影响介电常数,进而影响阻抗匹配。
实际波形有上冲、下冲、振铃等幅度变化;相位有超前、滞后变化;时钟有不同步问题等等。
这些问题限制了时序图的适用范围,使用中切记满足前提条件。
例如:PCI的突发访问字节数在时序图上可以做得很大,这样传输效率高,但是因为生产工艺达不到要求,不能保证时钟低抖动,阻抗也不能完全匹配,如果突发访问字节数过大,会造成误差累积,导致采样错误,因此实际中一般限制在4字节以下。
我们只可以把时序图当作理论参考,切记不能过份相信,要看时序只能通过示波器和逻辑分析仪。
 本来直流和交流特性不是时序内容,但因为对时序影响较大,所以就应该配合时序一起看。
 一般芯片厂商会提供DEMO板供设计参考,但DEMO就是DEMO,不能用于量产,切记,切记! 真实波形的边沿不能象时序图里画的那么陡峭。
因为越是陡峭的边沿,频谱范围越大,旁瓣越多,而我们需要的往往只是某个频点。
如果波形接近于正弦波,那么信号就比较“干净”。
 分析时序最好有例子,我推荐PCI和DDR(I、II)时序图。
这些图够复杂,够先进,代表目前的趋势。
PCI支持软件配置,有局部总线、接口总线、DMA、突发、总线仲裁等等,比较全面。
DDR现在又降价了,迟早要取代SDRAM,估计也就1年左右时间。
 找到芯片数据手册就可以得到时序图。
 -------- |寄存器| -------- 寄存器大致可以分为控制、数据、状态三种。
其实就是硬件里的D触发器外接三态总线。
硬件上关心的就是地址偏移,方向(只读、只写、读写),工作原理。
这样就可以分配地址空间,对应GPIO连接,实现硬件时序。
其实,寄存器更重要的意义是提供硬件和软件的接口。
软件通过寄存器操作硬件,硬件通过寄存器给软件提供信息。
一般地,一组寄存器对应一个协议,可以通过协议了解寄存器功能,通过寄存器了解协议细节,互相对照,学习效率高。
 ------ |协议| ------ 目前协议非常多,PCI、USB、I2C、ST-BUS、E1、802.3等等,了解每一种协议都要花费大量时间,我建议每次了解一点,积少成多。
 通常协议代表了行业标准,设计时应尽量向标准靠拢。
这样在套片选型时会拥有很大的成本优势。
 总之,协议是硬件的抽象,硬件是协议的具体实现。
 ------ |现状| ------ 以前,人们常说做硬件要动手能力强,现在看来似乎已经不正确了。
原来焊接DIP器件,手工操作就可以了,现在的BGA,谁还能用手焊,即使可以,谁能保证质量,尤其在量产的时候。
原来的板子要求3版成功,一版原型,一版修改,一版定型。
现在要求一版成功,纸上作业,在制板前解决所有问题。
想想也是,一块16层2.5G背板,如何飞线?如何割线?如何手工焊接?飞线肯定不行,频率那么高,而且走线在内部,根本没有办法。
即使可以飞,高频特性也会变化,无法给以后的修改提供依据。
割线也不成,找不到合适位置钻孔。
手工焊接达不到质量要求。
综上,一旦发现错误,最好就地销毁,眼不见心不烦。
 目前的现状是:原理图、PCB图均在计算机上完成,FPGA用HDL语言,仿真用软件,焊接用贴片机编程实现。
几乎没有什么可以动手的地方了。
另外CPU正朝多核方向发展,RISC比CISC更有前途(CISC的发热量大的问题在没有技术突破前无法解决,光看频率没用,过热时CPU会偷偷降频。
)。
 ************************* *
  (6) UART串口硬件分析 * ************************* 引脚分析: 9根标准的接口线dtr,dsr,rts,cts,dcd,gnd,rxd,txd,ri 4根地址线a0,a1,a2,cs 7根数据线d0-d7 3根控制线rw,strobe,reset 1根时钟线clk 1根状态线int 时序分析: 将数据位16等分,在7,8,9三个等分点采样,三中取二。
数据位的中点在第8等分点上,在中点附近采样可以保证左右各有50%时钟抖动裕量,这是抵御时钟抖动误差最有效的措施。
可以根据此裕量推算出经过若干位误差累积后,采样仍然正确时所允许的时钟精度。
除了时钟抖动,在信号电平幅度上也会产生加性干扰,导致采样错误。
利用三中取二的投票方法,可以避免瞬间的冲击干扰。
因此,串口波特率是输入时钟的十六分频。
波特率越高,对时钟精度要求就越高,抗瞬态干扰就越不容易。
 串并/并串电路使用移位寄存器实现,低位先处理。
 寄存器分析 寄存器的设计符合16C550工业标准,地址分配完全一样,寄存器内容有微小差异。
 标准定义了16个寄存器,使用a0-a2和DLAB及rw进行区分。
当a0接到16位单片机的A1脚时(16位机没有A0),需要将偏址乘2。
 FIFO寄存器的引入提高了传输效率,先积攒一下数据再处理的方式减少了中断次数。
为了避免处理器不能及时处理输入数据,FIFO一般提供1字节,1/4满,半满,3/4满,满等触发点,使得CPU可以提前处理数据。
为了避免输入数据达不到触发点而长时间等待,在4个字符时间内若没有RxFIFO操作将引发CTI中断。
这样CPU就能比较完美地使用FIFO处理数据了。
 *************************** *

(7) 芯片选型和电路设计 * *************************** 芯片选型很重要,需要仔细考虑。
原则是:质量好(选名牌)、成本低(综合成本低)、安全(不停产/替代品多)。
 芯片型号的细小差别要特别小心。
譬如:量产20K时发现一半板子正常,一半不正常。
经查发现库房因为缺货将74LV244换成74HLV244,只差一个字,H是保持的意思,上电时将随机状态存,导致网络处理器初始化混乱,损失惨重! 对于232驱动芯片,可选AD、MAXIM和SIPEX,毕竟AD、MAXIM在模拟方面还是有比较多经验的,值得信赖。
 速率选择支持115200即120KBPS,太高了也没用还贵。
 DTE设备232口有5个入,3个出,232电平在+-12V。
一般这种驱动芯片采用电荷泵技术,驱动能力弱,就不考虑从上面窃电了。
 232接口属于易损部件,有些型号里有静电泻放电路,可以抵抗较高的冲击电压,尽量选择抗高压的型号,以后维护时就不至于疲于奔命了。
 低功耗暂不考虑。
 参考:SP3243E,引脚悬空时,下拉电阻使其ON(有效)。
 因为MODEM串口速率不是很高,布线时只要不杂不漏(不多连也不少连)地将其一一对应连接即可。
需要注意的是,规范要求DTE设备用公的接口座,DCE设备用母的接口座。
 

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章