Chapter 12 串行口及其应用_第1页
Chapter 12 串行口及其应用_第2页
Chapter 12 串行口及其应用_第3页
Chapter 12 串行口及其应用_第4页
Chapter 12 串行口及其应用_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Chapter 12 串行口及其应用1 第十二章 串行口及其应用串行口可用于计算机与外设, 计算机与计算机之间的信息交换. 1 串行通信的有关概念一.并行通信与串行通信并行通信:各位同时传送,传输速率高。串行通信:逐位顺序传送,所用传输线少。二.串行通信的特点节省传输线,降低成本,但速度慢.三.串行通信线路的传送模式按同一时刻数据流的方向共有3种模式.21.单工通信:只容许一个方向传输数据.2.半双工通信:容许两个方向传输数据,但不能同时进行.3.双工通信:容许两个方向同时传输数据.3四.串行通信数据的收发方式一根线要传送数据和状态信息,需对信息的格式做约定.有两种格式.1.异步通信方式 AS

2、YNC以字符为单位进行传送.每一字符由4部分组成,即一个起始位,58位的数据,奇偶校验位和停止位.两个字符间可有空闲位.42.同步通信方式 SYNC以数据块为单位进行传送.在数据块的开始处可用同步字符或标志字符指示,而后将各数据连续传送(各数据间无起始位和停止位).五.波特率衡量传输速度的单位,即每秒传送的位数.异步通信:一般509600波特;同步通信:一般大于20000波特,最高可达800K波特.5六.调制与解调 (MODEM)调制数字信号 模拟信号;解调模拟信号 数字信号.七.检错与纠错1.检错用奇偶校验或方阵码检错等.奇偶校验:异步时用偶校验;同步时用奇校验.方阵检验字符的生成: 1 1

3、 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 - 0 0 0 0 1 0 0 162.纠错以反馈方式重发.八. 传输速率传送距离 常用的波特率有110,300,600,1200,2400,4800,9600和19200等。 波特率愈高则传输距离愈短。 2 RS 232C接口标准 (自学)是美国EIA与BELL公司开发并发布的一种通信协议,适用于020000波特的通信,被广泛用于计算机与终端或外设间的连接.它对串行通信接7口的机械、电气特性及信号线功能作了规定.一.电气特性1.逻辑电平(以

4、正负电压表示)数据:逻辑”1”低于-3V,逻辑”0”高于+3V;控制信号:接通状态+3V,断开状态-3V.实际工作时,电平范围在-15-5V及+5+15V之间.这一逻辑电平与TTL电平不同.与TTL器件连接时,须进行两种电平间的转换(可用集成电路芯片). MC1488: TTL EIA MC1489: EIA TTL8二.机械特性1.连接器用DB25型接插件作为数据终端设备DTE与数据通信设备DCE间的连接器.2.电缆长度RS-232C所能连接的最大长度是30M,波特率是5019200.三. RS-232C的接口信号共有25根线:4根数据线,11根控制线,3根定时线,2根地线,5根备用(未定义

5、)线.常用的只有9根线.91.设备状态信号线DSR(数据装置准备好)-高电平有效.有效时,表示MODEM处于可用状态.DTR(数据准备终端好)-高电平有效.有效时,表示数据终端可用.此两信号有时直接连到电源上.有的接口甚至省去此两线.2.发送控制信号线RTS(请求发送)-高电平有效.终端向MODEM请求发送.其用于控制MODEM是否进入发送状态.CTS(容许发送)-是MODEM对请求发送信号10RTS的响应信号.3.接收控制信号线RLSD接收线信号检出.当MODEM使该信号有效时,是通知终端准备接收,并将载波信号解调成数字量后沿RXD送至终端.RI(振铃指示)当MODEM收到交换台送来的振铃和

6、呼叫信号时,使其有效(为高电平),通知终端其已被呼叫.4.数据发送与接收线TXD(发送数据)通过TXD线将串行数据发送至MODEM;RXD(接收数据)通过该线终端接收从MODEM发来的串行数据.115.地线SG数字地; PG保护地近距离通信时可不用MODEM,通信双方可直接连接.最简单时只需三根线:RXD,TXD和地.四.串行通信接口的基本任务1.进行串行并行数据的转换;2.实现串行数据格式化异步:发送时自动生成及接收时自动去掉启动、停止位;同步:在传送的数据块前加上同步字符.12 3 8096/8098串行口的工作原理一.串行口的结构及控制1.引脚RXD接收(与P2.0共用); TXD发送(

7、与P2.1共用). 2.串行口控制及状态寄存器SP_CON 控制寄存器(5位);SP_STAT 状态寄存器(3位).两者共用一个寄存器,地址为11H.当发送或接收后,中断标志TI和RI将置1,以继续发送或准备接收下一数据.3.SBUF(RX)07H, 接收缓冲器,只读,由它读入已接收的数据.4.SBUF(TX)07H,发送缓冲器,只写,由它输出将要发送的数据.13 SP_CON/SP_STAT (11H)145.IOC116H, IOC1.5选择TXD/P2.0(1/0).6.BAUD_RATE波特率寄存器,0EH,只写,16位,但只占一个字节,分2次写(按字节写),用于设置波特率.其最高位选

8、择时钟:系统时钟/T2CLK (1/0);余下的15位为决定波特率的常数B.波特率公式:用XTAL1时:15用T2CLK时:16二.串行口的工作方式有一种同步方式和三种异步方式.1.方式0(同步方式)又称移位寄存器方式.用RXD引脚作为发送/接收端,而每发送/接收一帧数据,TXD引脚输出一串移位脉冲(8个),脉冲的周期由波特率决定.数据的发送和接收均是从低位开始.此方式不能同时发送和接收.用此方式可扩展并行I/O口(需外接移位寄存器),这是该方式的一个重要应用(见P336图).172.方式1(异步方式)标准的异步方式.(1)数据格式为10位一帧:一个起始位(低电平),8个数据位,一个停止位(高

9、电平).(2)此方式下,RXD接收,TXD发送.(3)波特率由BAUD_RATE决定.(4)可用中断方式进行通信.当发送或接收最后一个数据位后,中断标志TI和RI置位,这2个标志读后即被清除,因此对SP_STAT需加以保护.18(5)可进行奇偶校验.若PEN=1,则发送时的D7位(最高位)用偶校验位代替,且接收时需检查奇偶性,常用于单片机与CRT的通信.3.方式2和方式3(异步方式)(1)均称为识别第9位的异步方式;(2)数据格式为11位一帧:增加的D8位称为可编程的第9位.(3)通过编程使D8位为1或0,方式2时D8 =1产生中断,为0则不中断;而方式3时D8为1或为0均会中断.19(4)方

10、式2时不容许奇偶校验,但方式3容许奇偶校验.三.串行口的工作过程方式0:发送: 若REN=0,将数据写入SBUF(TX)则启动一次发送.接收: 编程使REN由0变为1,或在REN=1时清除RI则启动一次接收.若正在接收时使REN=0,则停止接收.其它方式(异步方式):发送:写SBUF(TX)则启动一次发送过程.接收:REN=1时,RXD引脚的下跳变将开始一次接收过程.接收和发送均可引起串口中断.20四.串行口的编程步骤1.置IOC1.5=1选TXD(P2.0);置REN=1选RXD(P2.1)功能;2.送控制字到SP_CON确定工作方式;3.送波特率常数B到BAUD_RATE,确定波特率及波特

11、率发生器时钟;4.对SBUF(RX)/ SBUF(TX)进行读写,启动通信过程. 可用查询法或中断法.五.使用串行口的注意事项1.读SP_STAT时,TI和RI标志将被清除,可予复制,与IOS1同.2. BAUD_RATE应分两次写.213.发送和接收共用一个中断矢量,进入中断服务程序后测试SP_STAT.4.CPU只能读取一个字节(8位)信息,方式2和方式3的第9数据位可由SP_STAT的最高位取得.六.多机通信用方式2和方式3实现多机通信.这是利用方式2的特点,即接收的第9位不是1时则不会引起中断.原理:主机要向从机发一数据块时,先发一个地址帧,地址帧和数据帧的区别是前者的第9数据位为1,

12、而后者的为0.地址帧使所有的从机都中断而能读取地址,当某一从机接收到的地址与自己相符时便转入方式3接收数据,而未被寻址的从机仍工作于方式2,不理会主机发送的数据帧.22 3 串行口的应用一.方式0的应用方式0为移位寄存器工作方式,可用于将串行数据变为并行数据的输入输出.RXD用于输入/输出,TXD提供移位脉冲.例. 用方式0输出数据(将P0口的开关状态送LED显示).CD4049移位寄存器; P2.7的正跳变启动移位操作;74LS244同相驱动器.23 ORG 2080HBEGIN: DI ORB IOC1, #20H ;选择P2.0的TXD功能 LDB AL,#00H ;AL准备保存串口状态

13、 LDB BAUD_RATE, #01H ;置波特率低字节 LDB BAUD_RATE, #80H ;波特率为1.5M LDB SP_CON,#00H ;方式0,关接收,不检验奇偶LOOP1: LDB BL,PORT0 ;读P0口的开关值 SCALL TEST SJMP LOOP1 ORG 2800HTEST: PUSHF ANDB PORT2, #7FH ;令P2.7=0 LDB SBUF, BL ;发送数据24LOOP2: ORB AL, SP_STAT ;复制串口状态 JBC AL, 5, LOOP2 ;若TI=0则继续查询状态 ANDB AL, #0DFH ;清除AL的TI标志 ORB

14、 PORT2,#80H ;令P2.7=1,启动移位寄存器 POPF RET二.方式1的应用1.查询法通过对RI和TI标志的查询来发送和接收数据.RXD接收,TXD发送.例. 用方式1(查询法)将键盘输入的数据送CRT显示. CHAR_I EQU 30H CHAR_O EQU 32H25 ORG 2080HSTART: DI ORB IOC1,#20H ;P2.0为TXD功能 LDB AL, #20H ;AL初始化,将TI置1 LDB BAUD_RATE, #9BH ;波特率为1200 LDB BAUD_RATE, #80H LDB SP_CON, #09 ;方式1,容许接收,不检验奇偶LOOP

15、: SCALL GETCHR ;从串口读输入的字符 LDB CHAR_O, CHAR_I ;复制输入的字符 SCALL PUTCHR ;向串口输出字符 SJMP LOOP ORG 3000HGETCHR: ORB AL, SP_STAT ;读状态 JBC AL, 6, GETCHR ;若RI=0,则继续查询 ANDB AL, #0BFH ;清除AL的RI标志26 LDB CHR_I, SBUF ;读输入的字符 RETPUTCHR:ORB AL, SP_STAT ;复制状态 JBC AL, 5, PUTCHR ;若TI=0,则等待上一字符发送完 LDB SBUF, CHAR_O ;发送本次字符

16、ANDB AL, #0DFH ;清除AL中的TI标志 RET注意,初始化时将TI置1,是为使第一个数据能送至SBUF(TX)发送,否则程序会一直等待.数据发送后一定要将AL中的TI清零.2.中断法在中断服务程序中进行数据的发送和接收.例. 任务同上例,但用中断法实现. RCFLAG EQU 30H CHR EQU 32H27 ORG 2080HBEGIN: DI ORB IOC1,#20H ;P2.0为TXD功能 LDB BAUD_RATE, #26H ;波特率为4800 LDB BAUD_RATE, #80H LDB SP_CON, #09 ;方式1,容许接收,不检验奇偶 LD AX, #3

17、200H ;设置中断矢量 ST AX, 200CH0 LDB BL, #20H ;设置TI初始位 CLRB RCFLAG ;清已接收标志 LDB INT_MASK, #40H ;容许串行口中断 EILOOP: SJMP LOOP ;等待串行口中断28 ORG 3200HINT_SIO: PUSHF ;禁止中断 ORB BL, SP_STAT ;复制状态GETBYTE: JBS RCFLAG,0,PUTBYTE ;已接收标志置位,则转发送 JBC BL, 6, PUTBYTE ;若RI=0,则转发送 STB SBUF, CHR ;保存已接收的字符 ANDB BL, #0BFH ;清除RI暂存位 LDB RCFLAG,#01H ;置已接收标志PUTBYTE: JBC RCFLAG, 0,CONTIN ;未接收字符,则转返回 JBC BL,5,CONTIN ;TI=0,则转返回 LDB SBUF, CHR ;发送字符 ANDB BL, #0DFH ;清除TI暂存位 ANDB CHR, #7FH ;清字符最高位 CMPB CHR, #0DH ;是CR字符吗? JNE CLRFLAG ;不是,转清已接收标志29 LDB CHR, #0AH ;是,将换行符送

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论