
数据通信的基本方式可分为并行通信和串行通信:
并行通信:指用多条数据传输线同时传输一个数据的所有位。其特点是传输速度快,适合短距离通信,但要求通信速度高。
串行通信是指使用传输线一位一位地顺序传输数据。其特点是通信线路简单,可以用简单的电缆实现通信,从而降低成本。适合远距离通信,但传输速度较慢。
一、异步通信及其协议
异步通信以一个字符为传输单位,通信中两个字符之间的时间间隔是不固定的,但同一字符中两个相邻位码之间的时间间隔是固定的。
通信协议(communication regulation):指双方约定的一些规则。使用异步串口传输字符信息时,数据格式有如下规定:有空闲位、起始位、数据位、奇偶位和停止位。
异步通信的时序如图5-1所示。
你们所有人的意义如下:
起始位:首先发送一个逻辑“0”信号,表示传输字符的开始。
位:紧接在起始位之后。位数可以是4、5、6、7、8等。形成一种性格。一般采用ASCII码。它从最低位开始传输,并由时钟定位。
奇偶校验位:数据位加上该位后,“1”的个数应该是偶数(偶数校验)或奇数(奇数校验),以便检查数据传输的正确性。
停止位:它是字符数据的结束标记。可以是1位、1.5位、2位高电平。
空闲位:处于逻辑“1”状态,表示当前线路上没有数据传输。
波特率:衡量数据传输速率的指针。表示每秒传输的二进制数字数。例如,如果数据传输速率为120字符/秒,每个字符为10位,则传输的波特率为10 120=1200字符/秒=1200波特。
注意:异步通信是通过字符传输的。接收设备收到启动信号后,只要能在一个字符传输时间内与发送设备保持同步,就能正确接收。下一个字符起始位的到达重新校准同步(发送方和接收方的时钟自同步是通过检测起始位实现的)。
二、数据传输模式
根据数据传输的方向,有以下三种方式。如图5-2所示。
(1)单工模式(2)半双工模式(3)全双工模式。
图5-2数据传输模式
1.单工模式
数据总是从设备A发送到设备b。
2.半双工模式
数据可以从设备A传输到设备B,也可以从设备B传输到设备A。在任何时候,数据都不能同时在两个方向上传输,即每次只有一个设备可以发送,另一个设备可以接收。但是通信双方按照一定的通信协议轮流发送和接收。
3.全双工模式
允许双方同时发送和接收。此时设备A也可以边发送边接收,设备b也可以,全双工模式相当于将两个方向相反的单工模式组合在一起,所以需要两条数据传输线。半双工和全双工模式主要用于计算机串行通信。
三、信号传输方式
1.基带传输模式
未调制的二进制信号在传输线上的直接传输,如图所示。它要求传输线有很宽的频带,传输的数字信号是矩形波。
基带传输模式只适合短距离低速通信。
数据通信的几种基本方式及原理分析
2.频带传输模式
发送调制的模拟信号
在远距离通信中,发送方使用调制器将数字信号转换成模拟信号,接收方使用解调器将接收到的模拟信号转换成数字信号,这就是信号的调制解调。
执行调制和解调任务的设备称为调制解调器。当采用频带传输时,通信双方分别连接一个调制解调器,数字信号在模拟信号(载波)上传输。因此,这种传输模式也称为载波传输模式。此时,通信线路可以是电话交换网或专用线路。
有三种常用的调制方法:
调幅、调频和调相如下图所示。
数据通信的几种基本方式及原理分析
四。串行接口标准
串行接口标准:指计算机或终端(DTE)的串行接口电路与调制解调器(DCE)之间的连接标准。
RS-232C标准
RS-232C是标准接口,D形插座,采用25针或9针连接器,如图5-5所示。
数据通信的几种基本方式及原理分析
按照RS-232C标准设计的接口电路实现了微机之间的串行通信。如果使用电话线进行通信,则计算机和调制解调器之间的连接基于RS-232C标准。显示了其连接和通信原理。
RS232信号定义
RS-232C标准规定有25个接口在线连接。只有以下九种信号是常用的。
引脚的功能如下:
1.TXD(第2针):发送数据线和输出。将数据发送到调制解调器。
2.RXD(第3针):接收数据线并输入。数据被接收到计算机或终端。
3.(第4脚):请求发送和输出。通过这个引脚,计算机通知调制解调器发送数据。
4.(第5脚):允许发送和输入。只有给出正确答案,计算机才能发送数据。
5.(脚6):数据设备就绪(即调制解调器就绪),输入。表示调制解调器可以使用。有时候这个信号是直接连到电源上的,所以设备连上了才有效。
6.CD(第8针):载波检测(接收线路信号测试仪),输入。表示调制解调器已经连接到电话线。
7.如果通信线路是交换电话的一部分,至少需要以下两种信号:
8.RI(第22脚):振铃指示,输入。如果调制解调器从交换机接收到振铃呼叫信号,它就发送信号通知计算机或终端。
9.(第20脚):数据终端准备输出。收到RI信号后,计算机向调制解调器发送信号作为应答,控制其转换设备并建立通信链路。
10.GND(第7针):信号地
逻辑电平
RS-232C标准采用EIA等级,规定:
“1”的逻辑电平在-3v和-15v之间。
“0”的逻辑电平在3V和15V之间。
因为EIA电平和TTL电平完全不同,所以必须进行相应的电平转换。MCl488完成从TTL电平到EIA电平的转换,MCl489完成从EIA电平到ITL电平的转换。MAX232可以同时完成TTL-》EIA和EIA-》TTL电平转换。
除了RS-232C标准,还有一些其他通用异步串行接口标准,如:
RS-423A标准
为了克服RS-232C的缺点,提高传输速率,增加通信距离,并考虑与RS-232C的兼容性,美国电子工业协会于1987年提出了RS-423A标准。该标准的主要优点是在接收端采用差分输入。而差分输入可以抑制共模干扰信号,从而提高通信的可靠性。RS-423A使用-6v表示逻辑“1”,6v表示逻辑“0”,可以直接连接到RS-232C。采用RS-423A标准,达到比RS-232C更好的通信效果。
RS-422A标准
RS-422A总线采用平衡输出发送器和差分输入接收器。如图5-8所示。
RS-422A的输出信号线之间的电压为2V,接收器的识别电压为0.2v共模范围25v。高速传输信号时,要考虑通信线路的阻抗匹配。一般在接收端加一个终端电阻,吸收反射波。电阻网络也应该平衡,如所示。
RS-485标准
RS-485适合发送方和接收方共用一对线路进行通信,也适合多点之间通过总线组网,但通信只能是半双工的。这些线条如图5-10所示。
典型的RS232转RS422/485转换芯片有:max 481/483/485/487/488/489/490/491、SN75175/176/184等。所有这些都只能在5v单电源下工作(电荷泵用于提升芯片内部的电压)。具体用法请参考相关技术手册。
动词(verb的缩写)S3C2410内置UART控制器
S3C2410有三个独立的UART控制器,每个控制器都可以工作在中断模式或DMA模式,也就是说当CPU和UART控制器传输数据时,UART控制器可以产生中断或DMA请求。并且每个UART都有一个16字节的FIFO(先进先出寄存器),最高可支持230.4Kbps的波特率。
UART的操作
UART的操作分为以下几个部分:数据发送、数据接收、中断产生、波特率产生、回送模式、红外模式和自动流量控制模式。
数据传输
传输数据帧的格式可以被编程。它包含一个起始位、5~8个数据位、可选的奇偶校验位和1~2个停止位。这些都是通过UART的控制寄存器ULCONn设置的。
数据接收
与发送一样,接收数据帧的格式也可以编程。此外,它还具有溢出错误、奇偶错误、帧错误等错误检测。每个错误都可以设置相应的错误标志。
自动流量控制模式
S3C2410的UART0和UART1可以通过各自的nRTS和nCTS信号实现自动流量控制。
在自动流量控制(AFC)模式下,nRTS依赖于接收端的状态,而nCTS控制发送端的操作。具体来说,只有当nCTS有效时(表示接收器的FIFO准备好接收数据),UART才会发送FIFO中的数据。在UART接收数据之前,只要接收FIFO中至少有2字节空闲,nRTS就会被设置为有效。图5-12显示了UART自动流量控制模式的连接模式。
中断/DMA请求生成
S3C2410的每个UART有七种状态,分别是:溢出错误、奇偶错误、帧错误、断线错误、接收就绪、发送缓冲区空闲、发送移位器空闲。它们在UART状态寄存器UTRSTATn/UERSTATn中有相应的标志位。
波特率发生器
每个UART控制器都有自己的波特率发生器来产生用于发送和接收数据的串行时钟。波特率发生器的时钟源可以是CPU内部的系统时钟,也可以从外部从CPU的UCLK引脚获取时钟信号,各自的时钟源可以通过UCONn选择。
波特率的具体计算方法如下:
选择CPU内部时钟时:
Ubdvn=(int) (PCLK/(bps * 16))-1,bps是需要的波特率,PCLK是CPU内部外设总线(APB)的工作时钟。
当需要更精确的波特率时,可以选择由UCLK引入的外部时钟来产生。
UBRDIVn=(int)(UCLK/(bps*16))-1
环回操作模式
S3C2410 CPU的UART提供了一种测试模式,这里称为回送模式。在设计系统的具体应用时,为了判断通信失败是因为外部数据链路问题,还是CPU内部的驱动,还是CPU本身的问题,需要采用环回的方式进行测试。在环回模式下,数据发送方TXD与UART中的接收方RXD逻辑连接,可以用来验证数据是否正常发送和接收。
UART控制寄存器
下面将逐一解释UART的每个控制寄存器,以便进一步了解UART的操作和设置。
ULCONn (UART线路控制寄存器)如图5-13所示。
数据通信的几种基本方式及原理分析
图5-13
字长:数据位长度
停止位数:停止位数
奇偶校验模式:奇偶校验位类型
红外模式:UART//红外模式选择(在UART模式下工作时设置为“0”)
UCONn (UART控制寄存器)如图5-14所示。
接收模式:选择接收模式。如果采用DMA模式,还需要指定所使用的DMA通道。
传输模式:同上。
发送信号:选择在传输1帧数据的中途是否发送中断信号。
回送模式:选择是否将UART置于回送测试模式。
Rx错误状态中断使能:选择当接收异常发生时,是否使能是否产生接收错误中断。
Rx超时使能:是否使能接收超时中断。
Rx中断类型:选择接收中断的类型。
0:脉冲(脉冲/边沿中断)。在非FIFO模式下,一旦接收缓冲区有数据,就会产生中断;在FIFO模式下,一旦FIFO中的数据达到某个触发电平,就会产生中断)
1:电平(电平模式中断)。在非FIFO模式下,只要接收缓冲区有数据,就会产生中断;在FIFO模式下,一旦FIFO中的数据达到触发电平,就会产生一个中断)
Tx中断类型:类似于Rx中断类型
时钟选择:选择UART波特率发生器的时钟源。
数据通信的几种基本方式及原理分析
图5-14
UFCONn (UART FIFO控制寄存器)如图5-15所示
使能:FIFO使能:FIFO选择。
Rx FIFO复位:选择当接收FIFO复位时是否自动清除FIFO的内容。
发送FIFO复位:选择当发送FIFO复位时是否自动清除FIFO的内容。
Rx FIFO触发电平:选择接收FIFO的触发电平。
发送FIFO触发电平:选择发送FIFO的触发电平。
数据通信的几种基本方式及原理分析
图5-15
Umconn (UART调制解调器控制寄存器)如图5-16所示。
请求发送:如果在AFC模式下,该位将由UART控制器自动置1;否则必须由用户的软件控制。
自动流量控制:选择是否启用自动流量控制(AFC)。
数据通信的几种基本方式及原理分析
图5-16
Rstatn (UART tx/rx状态寄存器)如图5-17所示。
接收缓冲区数据就绪:当接收缓冲区寄存器从UART接收端口接收到有效数据时,它将自动设置为“1”。否则,“0”意味着缓冲区中没有数据。
发送缓冲区空:当发送缓冲区寄存器为空时,自动置为“1”;反之,则表示缓冲区中有数据等待发送。
发送器空:当发送缓冲区没有有效数据时,自动置为“1”;反之,说明还有材料没发。
数据通信的几种基本方式及原理分析
图5-17
Uerstatn (UART错误状态寄存器)如图5-18所示。
超限错误:为“1”,表示发生了超限错误。
帧错误:是“1”。表示发生了帧错误。
数据通信的几种基本方式及原理分析
图5-18
ufstatn: (UART FIFO状态寄存器)参见图5-19
Rxcount:当前存储在接收FIFO中的字节数。
发送FIFO计数:当前存储在发送FIFO中的字节数。
rx full:“1”表示接收FIFO已满。
发送FIFO已满:“1”表示发送FIFO已满。
数据通信的几种基本方式及原理分析
图5-19
Umstatn: (UART FIFO状态寄存器)如图5-20所示。
清除发送:“0”表示CTS无效;“1”表示CTS有效。
Delta CTS:表示自从上一次CPU访问该位以来,nCTS的状态是否已经改变。
“0”表示没有变化;反之,则表示nCTS信号发生了变化。
数据通信的几种基本方式及原理分析
图5-20
Uthn和URXHn分别是UART发送和接收数据寄存器。
这两个寄存器存储发送和接收的数据,当然只有一个字节的8位数据。注意,发生溢出错误时,必须读出接收到的数据,否则会造成下一个溢出错误。
ubdvn见图5-21:(UART波特率分频器寄存器)
数据通信的几种基本方式及原理分析
图5-21
UART波特率的计算方法在前面的内容中已经详细介绍过了,这里不再赘述。
总结:读写状态寄存器UTRSTAT和错误状态寄存器UERSTAT可以反映芯片当前的读写状态和错误类型。FIFO状态寄存器UFSTAT和调制解调器状态寄存器UMSTAT可以读出当前FIFO是否已满以及其中的字节数。后者可以读出当前调制解调器的CTS状态。









