嵌入式串口软件编程预备知识

来源:互联网 发布:王思仪淘宝店店名 编辑:程序博客网 时间:2024/06/05 09:35

通常数据表示采用二进制规定,那么就必须明确两个概念:

EIA电平—— RS232就采用这种电平,“1”的逻辑电平在-3V~-15v之间 “0”的逻辑电平在+3V~+15V之间。(EIA代指“电子工业协会”)

TTL电平—— +5V等价于逻辑"1",0V等价于逻辑"0",这被称做TTL(晶体管-晶体管逻辑电平),这是计算机处理器控制的设备内部各部分之间通信的标准技术。

1、什么是串口通信

串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。传输过程中,数据在一根数据信号线上一位一位进行传输,每一位数据都占据一个固定的时间长度。

串口传输是二进制代码序列在一条信道上以位(元码)为单位,按时间顺序且按位传输的通信方式。串行传输时,发送端按位发送,接收端按位接受,同时还要对所传输的位加以确认,所以收发双方要采取同步措施,否则接受端将不能正确区分出所传输的数据。

通信特点:使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。 

2、串口通信的原理

串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。串口是系统资源的一部分,应用程序要使用串口进行通信,必须在使用之前向操作系统提出申请要求(打开串口),通信完成后必须释放资源(关闭串口)。串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。串口是系统资源的一部分,应用程序要使用串口进行通信,必须在使用之前向操作系统提出申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。串口是系统资源的一部分,应用程序要使用串口进行通信,必须在使用之前向操作系统提出申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

3、串口通信的基本任务

(1)实现数据格式化:因为来自CPU 的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 
(2)进行串---并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串接口电路和的重要任务。 
(3)控制数据传输速率:串行通信接口电路应具有对数据传输速率-----波特率进行先择和控制的能力。 
(4)进行错误检测:在发送接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他检验码,确定是否发生传送错误。 
(5)进行TTL 与EIA 电平转换:CPU 和终端均采用TTL 电平及正逻辑,它们与EIA 采用的电平及负逻辑不兼容,需在接口电路中进行转换。

RS-232C是1969年由电子工业协会(EIA)公布的标准。该标准的用途是定义数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equioment)的接口特性。RS-232C是1969年由电子工业协会(EIA)公布的标准。该标准的用途是定义数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equioment)的接口特性。

RS-232C是1969年由电子工业协会(EIA)公布的标准。该标准的用途是定义数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equioment)的接口特性。RS-232C采用非归零、双极性编码,且使用负逻辑规定的逻辑电平:-15~-5V规定为逻辑“1”。+5~+15V规定为逻辑“0”。信号电平与TTL电平不兼容,所以需要电平转换电路(通常使用MAX3232转换)。

4、通信格式

(1) 字符(帧)格式

    RS-232C采用起止式异步通信协议,其特点是一个字符接着一个字符进行传输,并且传输一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。其传输格式如图2.4所示,每一个字符的前面都有一位起始位(低电平,逻辑“0”),字符本身有5~8位数据位,接着字符后面是一位校验码(也可以没有校验码),最后是停止位。停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值“1”),这样就能保证起始位开始处一定有一个下跳沿,便于接受方识别。

    这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。没有统一的时钟,没有同步字符,依靠起始位和停止位标识每一帧,传输时,数据的地位在前,高位在后。  起始位实际上是作为同步信号附加进来的,当它变为低电平时,告诉接受方传输开始,后面接着是数据位;而停止位则标志一个字符的结束。这样就为通信双方提供了何时开始收发、何时结束的标志。传输开始前,收发双方把所采用的字符格式(包括字符的数据位长度、停止位位数、有无校验位以及是奇校验还是偶校验等)和数据的传输速率进行统一规定。传输开始后,接收设备不断地检测线路,看是否有起始位到来。当收到一系列的“1”(停止位或空闲位)之后,检测到一个下跳沿(由“1”变为“0”),说明起始位出现,起始位经确认后,就开始接收所规定的数据位和奇偶校验位以及停止位。然后去掉停止位,对数据位进行串并转换,并且经奇偶校验无误后,才算正确地接收到一个字符。一个字符接收完毕,接收设备又继续测试线路,监视“0”电平的到来和下一位字符的开始,直到全部数据传输完毕。

由于RS-232C标准中有两对硬件握手协议的引线:DTR和DSR、RTS和CTS,根据应用握手协议的机制不同,可分为3种情况:无硬件握手、DTR和DSR握手、RTS和CTS握手。

(2) 握手协议分三种:

① 无硬件握手情况

无硬件握手的连线最简单,只需要3根线,应用比较多。但通信不可靠,接收缓冲区容易溢出。

② DTR和DSR握手情况

采用DTR和DSR握手进行发送和接收数据的过程如下(设计算机A接收,计算机B发送): 若计算机A已经准备就绪,则使DTR有效。计算机B通过采集DSR,得知计算机A已经做好接收数据的准备,可以发送数据。若计算机A为准备好,则DTR无效,计算机B通过采集DSR,得知计算机A尚未做好接收数据的准备,停止发送数据。

③   RTS和CTS握手情况

利用RTS和CTS握手进行发送和接收数据的过程如下(设计算机A接收、计算机B发送):

若计算机A已经准备就绪,则使RTS有效。计算机B通过采集CTS,得知计算机A已经做好接收数据的准备,可以发送数据。若计算机A未准备好,则RTS无效,计算机B通过采集CTS,得知计算机A尚未做好接收数据的准备,停止发送数据。



0 0
原创粉丝点击