微型计算机控制技术第3章计算机串行通信接口技术_第1页
微型计算机控制技术第3章计算机串行通信接口技术_第2页
微型计算机控制技术第3章计算机串行通信接口技术_第3页
微型计算机控制技术第3章计算机串行通信接口技术_第4页
微型计算机控制技术第3章计算机串行通信接口技术_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、3.1 串行通信基础串行通信基础 3.2 MCS-51的串行接口的串行接口3.3 其他常见的串行通信接口其他常见的串行通信接口3.4 VB与串行通信与串行通信3.1 串行通信基础 3.1.1 串行通信常用术语1通信方式CPU与外界的信息交换称为通信(Communication)。通信方式有并行和串行两种。并行通信:数据的组成位同时传送,通过并行接口来实现。串行通信:数据的组成位逐位顺序传送,通过串行接口来实现。2串行通信的方式两种最基本的方式:异步通信和同步通信。异步通信:每个数据加上起始、停止、校验位,组成一帧。同步通信:若干数据顺序串联,加上同步、校验字节组成块。3波特率(Baud rat

2、e) bit/s 4半双工和全双工 发送或者接收;发送接收。5信号的调制和解调 数据位模拟信号;模拟信号数据位。6 通用异步接收器/发送器 UART7 串行通讯的校验方法 奇偶校验;循环冗余校验。8串行通信传送控制规程 统一规定,或者称为协议。 3.1.2 RS-232C1RS-232C标准:美国电气工业协会推广使用的一种串行通信总线标准,是DEC(数据通信设备,如微机)和DTE(数据终端设备,如CRT)间传输串行数据的接口总线。最大传输距离为15m,最高传输速度约每秒20Kbit,逻辑“0”电平为+3+15V,逻辑“1”电平为3 15V。2RS-232C电平与TTL电平的转换即: TTL逻辑

3、“0”电平转换为+3+15V模拟信号,逻辑“1”电平转换为3 15V模拟信号。可以考虑:分立元件转换电路,集成电路转换器。 图3-3 分立元件电平转换器线路 集成电路MC1488:将TTL电平转换成RS-232C电平;集成电路MC1489:将RS-232C电平转换成TTL电平。图3-4给出了这两种芯片的引脚图。3.1.3 RS-232C的使用RS-232C使用25脚D型接插件连接。近程通信不需要调制解调器时,只用少量信号线。若采用直接通信,通常只用TXD(2),RXD(3), 地(7)这三根线。如图3-6形成三线通信的连接形式。与并行通信相比,串行通讯只需一对传送线,在传送位数较多、距离较远时

4、,具有明显的优势。数据是逐位传送的,其传送速度比并行传送要慢。 图3-6 三线通信3.2.1 串行接口的组成和特性 MCS-51的串行口是一个全双工的接收缓冲式的串行通讯接口,可以同时发送和接收数据,既可用作异步接收和发送器UART,也可用作同步移位寄存器。1串行数据缓冲器SBUF在物理上,SBUF对应着只能读的数据接收寄存器和只能写的数据发送寄存器,地址都是99H。CPU对SBUF执行写操作指令“MOV SBUF,A”时将累加器中内容发送;执行读操作指令“MOV A,SBUF”时将接收缓冲器中内容读入累加器。2串行口控制寄存器SCON串行口控制寄存器SCON存放串行口的控制和状态信息,地址为

5、98H,具有位寻址功能。 格式: D7 D6 D5 D4 D3 D2 D1 D0SM0SM1SM2REN TB8 RB8TIRISCON含义:SM0,SM1:串口工作方式选择位。串行口操作方式选择见表3-1所示。 SM2:在方式2和3中,为多机通信控制位。如SM2=1,则接收到第9位数据RB8为0时,不激活RI。在方式1时,如SM2=1,则只有收到有效的停止位时才激活RI。在方式0时,SM2=0。REN:允许串行接收位。允许接收时,用软件置1,否则清0。TB8:在方式2和3中,是发送的第9位数据。由软件置位或复位,该位用于多机通信控制或奇偶位。RB8:在方式2和3中是接收到的第9位数据。对于方

6、式1,如SM2=0,RB8是接收到的停止位。对方式0,RB8未用。 TI:发送中断标志 由硬件在方式0串行发送第8位结束时置位,或在其他方式串行发送停止位的开始时置位。必须由软件清0。 表3-1 串行口操作方式选择 SM0 SM1 方式 功 能 波特率 0 0 0同步移位寄存器方式用于I/O扩展 fosc /12 0 1 18位UART,一帧信息为10位,1位起始位,8位数据位和1个停止位 波特率可变(定时器T1溢出率/n)1 029位UART,一帧信息为11位,1位起始位,8位数据位,1位可编的第9位和1个停止位 fosc /64 或 fosc /32 1 139位UART,一帧信息为11位

7、,1位起始位,8位数据位,1位可编的第9位和1个停止位 波特率可变(定时器T1溢出率/n) RI:接收中断标志 由硬件在方式0接收到第8位结束时置位,或在其他方式接收到停止位的中间时置位,必须由软件清0。 3. 特殊功能寄存器PCON特殊功能寄存器PCON地址为97H,无位寻址功能。格式: D7 D6 D0PCON最高位为串口波特率系数控制位SMOD,SMOD=1时波特率加倍。其他位为掉电方式控制位(CHMOS器件)。 SMODSMOD 3.2.2 波特率(1)方式0的波特率=f/12,其中f为振荡器频率。(2)方式2波特率=2* f/64,其中SMOD是PCON.7。(3)方式1和3的波特率

8、:用定时器T1做波特率发生器时,应禁止T1中断,T1工作于方式2时则:方式1和3的波特率=2SMOD(T1的溢出率)/32 =)(256*12*32*21THfOSCSMOD3.2.3 双机通信设甲、乙两机用串口工作方式1进行通信,用定时器T1作波特率发生器,工作于方式2,波特率1200bit/s,晶振为6MHZ。甲机发送:将外部RAM 3000H301FH单元中的数据块及数据块首、末地址通过串行口发送到乙机。乙机接收:接收到的第1,2字节为数据块首地址,第3,4字节为数据块末地址,第五字节开始为数据块。将接收到的数据块首、末地址及数据块依次存入起始地址为2000H的外部RAM中。 图图37

9、发送程序流程图发送程序流程图发送程序清单: ORG 0023H SUB1:AJMP SUB2 ORG 2000HTRANS:MOV TMOD,#20H ;置定时器1工作方式2 MOV TL1,#0F3H ;波特率1200,f=6MHz MOV TH1,#0F3H ;T1工作方式2,重装初值 CLR ET1 SETB EA ;CPU开中断 CLR ES ;禁止串口中断 ANL PCON,#00H ;PCON=SMOD=0 SETB TR1 ;启动定时器1 MOV SCON,#40H ;串口方式1 MOV SBUF,#30H ;数据块首地址高8位 AWAIT1:JNB TI,AWAIT1 ;发送完

10、了么? CLR TI ;由软件清除TI MOV SBUF,#00H ;数据块首地址低8位AWAIT2: JNB TI,AWAIT2 CLR TI MOV SBUF,#40H ;数据块末地址高8位AWAIT3: JNB TI,AWAIT3 CLR TI MOV SBUF,#1FH MOV DPTR,#4000H ;指向数据块首地址 MOV R7,#20H ;数据个数20H SETB ES ;允许串口中断 AHALT:AJMP AHALT ;踏步等待 中断服务子程序: ORG 2200H SUB2:PUSH DPH ;保护现场 PUSH DPL PUSH ACC MOVX A,DPTR ;取出数据

11、 CLR TI MOV SBUF,A ;发送数据 DJNZ R7,AEND1 ;数据发送完了吗? CLR ES ;关串口中断 CLR TR1 ;T1停止工作 AJMP AEND2 AEND1:INC DPTR AEND2:POP ACC ;恢复现场 POP DPL POP DPH RETI图图38 接收程序流程图接收程序流程图接收程序清单: ORG 0023H SUB3:AJMP SUB4 ORG 2000HDECEIV:MOV TMOD,#20H ;定时器T1工作方式2 MOV TL1,#0F3H ;波特率1200f=6MHz MOV TH1,#0F3H ;T1工作方式2,重装初值 SETB

12、 EA ;CPU开中断 CLR ET1 CLR ES ;串口关中断 MOV PCON,#00H ;PCON=SMODS=0 SETB TR1 ;启动定时器T1 MOV SCON,#70H ;串口工作方式1 MOV DPTR,#2000H ;外部RAM首地址 MOV R7,#24H ;接收的数据个数 BWAIT1:JNB RI,BWAIT1 ;判断接收标志RI=1吗? CLR RI ;由软件清除RI MOV A,SBUF ;接收数据送入A中 MOVX DPTR,A ;送外部RAM INC DPTR ;修改指针BWAIT2:JNB RI,BWAIT2 CLR RI MOV A,SBUF MOVX

13、DPTR,A INC DPTRBWAIT3:JNB RI ,BWAIT3 CLR RI MOV A,SBUF MOVX DPTR,A INC DPTRBWAIT4:JNB RI ,BWAIT4 CLR RI MOV A,SBUF MOVX DPTR,A INC DPTR SETB ES ;串口开中断 BHALT:AJMP BHALT ORG 2200H SUB4: PUSH DPH ;保护现场;保护现场 PUSH DPL PUSH ACC MOV A,SBUF ;接收数据;接收数据 CLR RI ;由软件清除;由软件清除RI标志标志 MOVX DPTR,A ;数据送入外部;数据送入外部RAM区

14、区 DJNZ R7,BEND1 ;判断数据是否接收完;判断数据是否接收完 CLR ES ;串口关中断;串口关中断 CLR TR1 ;T1停止工作停止工作 AJMP BEND2 BEND1:INC DPTR BEND2:POP ACC ;恢复现场;恢复现场 POP DPL POP DPH RETIRS-232C:采用单端发送、单端接收传送方式。 RS-423A:利用差分接收器替代 RS-232C的单端接收器。RS-422A:采用双端发送,双端接受的传送方式。RS-485:采用双端发送,双端接受的传送方式。RS-485与RS-422A兼容,但是它的线路中可以有多个发送器,一个发送器可以驱动多个负载

15、设备,在传送的两端都要配备平衡电阻。RS-485可以在传输中实现多个发送器和多个接收器公用一条线路。RS-485接口最大的优点是抗干扰能力强、传送速度快,传送距离远。当传送速度小于100kbit/s时,可以传送1200m。3.4 VB与串行通信在VB中可以考虑的串行通信手段:调用API函数;使用Communications控件(简称Comm控件),更常用、更简便。3.4.1 VB的Communications控件1. Comm控件的添加Comm控件不是VB的基本控件,使用前必须添加。添加方法:用鼠标右击VB的控件工具箱,显示弹出式菜单,选择其中的“部件”项,会出现一个对话框, 选择Micros

16、oft Comm Control 5.0项,再单击“确定”按钮。这时,控件工具箱中出现一个电话机形状的控件图标,这就是串行通信用的 Comm控件。2. Comm控件概述Comm控件用于进行串行通信,即可以用来提供简单的串行端口通讯功能,也可以用来创建功能完备的、事件驱动的高级通讯工具。Comm控件提供了一系列标准通讯命令的使用界面。使用它可以建立与串行端口的连接,通过串行端口连接到其他通讯设备(例如调制解调器)、发出命令、交换数据,以及监视和响应串行连接中发生的事件和错误。利用它可以进行诸如拨打电话号码、监视串行端口的输入数据乃至创建功能完备的终端程序等功能。 3. Comm控件的重要属性Co

17、mmport:设置或返回通信端口号,当这个属性设置成1,表示利用COM1端口进行串行通信。在程序运行时也可以读取该属性,用来了解串行端口的使用情况。Settings:用字符串的形式设置或返回串行通信的帧格式,例如:把Settings设置为“9600,n,8,1”,表示采用的串行通信波特率是9600、无奇偶校验、数据位是8位,1位停止位。PortOpen:设置或返回通讯端口的状态,打开和关闭端口。在开始进行串行通信前,要把它设置为True,表示打开通信端口;通信结束后,要把它设置成False,表示关闭通信端口。 Input:从输入缓冲区读取数据,并删除输入缓冲区中的字符。 当串行端口接收到数据后

18、,就把它放入输入缓冲区; 在程序中利用Input属性可以读取这些数据。InBufferCount:设置接收缓冲区中的字符数。 可以把 InBufferCount属性设置为0来清除接收缓冲区。InputLen:设置/返回Input属性从接收缓冲区读取的字符数。Output:向发送缓冲区传送数据。InputMode:设置或返回Input属性取回的数据的类型。 0:(默认)数据通过Input属性以文本形式取回; 1:数据通过Input属性以二进制形式取回 Sthreshold:设置返回发送缓冲区中允许的最小字符数。 当该属性为0,数据发送不会产生OnComm事件; 当该属性为1,每发送一个字符都会产

19、生OnComm事件。Rthreshold:设置并返回的要接收的字符数。 当该属性为0,数据接收不会产生OnComm事件; 当该属性为1,每接收一个字符都会产生OnComm事件。CommEvent:返回最近的通信事件或错误。 4. Comm控件的事件Comm只有一个事件,即 OnComm事件。当发生接收错误、因收到数据使得接收缓冲区 的字符 等于/多于规定值、因发送数据使得发送冲 区中的字符数少于规定数、 从MODEM传递来各信号线发生变化等等都会产OnComm事件。当发生OnComm事件后,在其处理程序中,首先要检查Comm控件的CommEvent属性,然后根据不同的情况分别进行处理。3.4.2 简单的串行通信程序该程序是VB5.0中的一个示范程序,它首先定义了一个字符串,用于保存串口接收到的数据;然后设置使用串COM1,接着设置串口的基本工作方式(9600波特,无奇偶校验,8位数据,一个停止位);把Comm控件的Inputlen属性设为0,表明读取接收缓冲区时是把整个

温馨提示

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

评论

0/150

提交评论