第10章 串行通信(南通大学)(陈继红)
基于AT89S52高性能单片机串行通信电路的设计

基于AT 89S 52高性能单片机串行通信电路的设计淮安广播电视大学电子工程系 陈京培[摘 要]随着单片机技术的发展,传统的依赖于仿真机的单片机实验成本高且效率低,已不适应现代科技开发需求。
串行通信是目前单片机应用中经常要用到的功能,本设计目的就是在传统实验板的基础上,利用功能强大的A T 89S52型单片机和编程软件Visual C++设计了一种新型单片机串口通信电路。
实验结果表明,该方案接口简单、使用方便、稳定可靠。
[关键词]新型串行通信 A T 89S52 硬件接口 程序设计 1、串行通信原理计算机与外界信息间的交换称为通信。
随着计算机应用技术和微机网络技术的发展,计算机与其外部设备之间的数据传输越发显得重要。
而串行通讯技术是实现这一功能的有效途径,它具有经济方便、数据传输可靠、适用于远距离通讯的特点,在工业监控、数据采集、检测等系统中有着广泛的应用[1]。
在异步通讯中,数据是一帧一帧传送的,在帧格式中,一个字符由4部分组成:起始位、数据位、奇偶校验位和停止位,见下图1。
首先是一个起始位“0”,然后是5~8位数据(规定低位在前,高位在后),接下来是奇偶校验位(可省略),最后是停止位“1”。
起始位“0”信号只占用1位,用来通知接收设备一个待接收的字符开始到来。
线路在不传送字符时应保持为“1”。
接收端不断检测线路的状态,若连续为“1”以后又检测到一个“0”,就知道发来一个新字符,应马上准备接收[2]。
2、A T 89S52单片机特点简介A T 89S 52单片机是AT M EL 公司新近推出的高档、增强型产品。
它是一个低功耗、高性能CM OS 8位微控制器,片内含通用8位中央处理器和ISP Flash 存储单元,8k By tes ISP (In -system pro gr ammable)的可反复擦写1000次的F lash 只读程序存储器,片上Flash 允许程序存储器在系统可编程,亦适于常规编程器。
南通大学杏林学院通信原理复习

n
s2 t an g (t nTs )
n
2FSK 产生
模拟调频法:相邻码元之间的相位是连续变化的。
键控法:相邻码元之间的相位不一定连续。
振荡器1
f1
选通开关
s (t )
基带信号
反相器 振荡器2
f2
s (t )
相加器
e2FSK (t )
载波
t
P +1, an = 1 P) 0, (
2ASK 也称 O生
模拟调制法 键控法
开关电路
单极性 非归零信号
s (t )
乘法器
e2ASK (t )
cos c t
s(t )
e2ASK (t )
cos ct
2ASK 解调
包络检波法
带通 滤波器 a 全波 整流器 b 低通 滤波器 c 抽样 判决器 定时 脉冲 d 输出
Power Spectral Density
分析目的:B 分析方法:借助于基带信号的功率谱
1 2ASK信号的功率谱密度
e2ASK (t ) s(t ) cos ct
单极性
设
Ps (f) —— s(t) 的PSD
P2ASK (f) —— 2ASK信号的PSD
则
1 P2ASK ( f ) Ps ( f f c ) Ps ( f f c ) 4
学习要求:
第7章 数字调制
掌握2ASK、2FSK、2PSK、和2DPSK等数字调 制系统的调制解调原理、调制与解调框图以及数 学描述。 理解数字调制信号功率谱的分析方法,掌握各种 二进制数字调制系统对信道带宽的要求。 掌握高斯信道二进制数字系统性能分析方法;理
串行通信基础知识

微机
TxD RxD RTS CTS
GND DSR DTR
➢零MODEM 方式使用联络信号的多线连接
TxD 微机 RxD
RTS CTS GND DSR DTR
微机
微机
RS-232C的电气特性
232C接口采用EIA电平
高电平为+3V~+15V 低电平为-3V~-15V 实际常用±12V或±15V
RxRDY(Receiver Ready) 接收器准备好信号,高电平有效。若命令寄 存器的RxE位被置1(允许接收),则当8251A已经从它的串行输入端接收了 一个字符,并完成了格式变换后,此信号有效。
8251A有2个端口:命令口(CS*=0,C/D*=1)、数据口( CS*=0,C/D*=1 ) 命令字写到命令口; 对命令口执行读操作,得到8251A的状态字 发送的数据送到数据口 对数据口执行读操作,得到对方发来的数据。
速度、传送步骤、检纠错方式等问题作出统一规定。也称通信 控制规程。
面向字符(character Oriented)
分类
同步协议
面向比特(Bit)
异步协议
ISO(Inter national Standard Organization)国际标准化组织。 OSI(Open System Interconnection)开放系统互连参考模型。
➢ 收发双方的数据必须保持位同步
➢ 收发双方必须用时钟同步
七、串行通信接口标准
1、EIA-RS-232C接口标准
RS-232C标准是美国EIA(电子工业联合会)与BELL等公司 一起开发的,1969年公布的通信协议。 设计目的是用于连接调制解调器。 数据终端设备DTE与数据通信设备DCE的标准接口。 可实现远距离通信,也可近距离连接两台微机。
串行通讯的实验报告

一、实验目的1. 理解串行通讯的基本原理和通信方式。
2. 掌握串行通讯的硬件设备和软件实现方法。
3. 学会使用串行通讯进行数据传输。
4. 通过实验,提高动手能力和分析问题、解决问题的能力。
二、实验原理串行通讯是指用一条数据传输线将数据一位一位地按顺序传送的通信方式。
与并行通讯相比,串行通讯具有线路简单、成本低等优点。
串行通讯的基本原理如下:1. 异步串行通讯:每个字符独立发送,字符间有时间间隔,不需要同步信号。
每个字符由起始位、数据位、奇偶校验位和停止位组成。
2. 同步串行通讯:数据块作为一个整体发送,需要同步信号。
同步串行通讯分为两种方式:面向字符方式和面向比特方式。
三、实验设备1. 计算机:一台2. 串行通讯设备:串行数据线、串行接口卡、串口调试助手等3. 单片机实验平台:一台4. 数码管显示模块:一个四、实验内容1. 异步串行通讯实验(1)硬件连接:将计算机的串口与单片机实验平台的串行接口连接。
(2)软件设计:编写程序,实现单片机向计算机发送数据,计算机接收数据并显示在屏幕上。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
b. 编写发送程序,实现单片机向计算机发送数据。
c. 编写接收程序,实现计算机接收数据并显示在屏幕上。
2. 同步串行通讯实验(1)硬件连接:与异步串行通讯实验相同。
(2)软件设计:编写程序,实现单片机向计算机发送数据块,计算机接收数据块并显示在屏幕上。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
b. 编写发送程序,实现单片机向计算机发送数据块。
c. 编写接收程序,实现计算机接收数据块并显示在屏幕上。
3. 双机通讯实验(1)硬件连接:将两台单片机实验平台通过串行数据线连接。
(2)软件设计:编写程序,实现两台单片机之间相互发送和接收数据。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
《串行通信》PPT课件

范例如图:
某 帧数据
…… …… 0 1 0 1 0 1 0 1 0 0 1
起
数据位
偶停
始
校止
位
验位
位
…… ……
精选课件ppt
23
1.4 UART的应用
UART一般可以应用到如下一些场合:
1.芯片间的近距离通信 2.与PC机之间的通信 3.模块之间的远距离通信
精选课件ppt
24
1、芯片间的近距离通信
精选课件ppt
7
1.5 串行通信分类
串行通信标准有许多,下面仅对部分常见的串行通信标
准进行简单介绍 。
串行通信标 准
引脚
引脚说明
UART
TXD、RXD、 GND
(三线)
TXD:发送端 RXD:接收端
1-Wire DQ (一线) DQ:发送/接收端
SCK:同步时钟
SCK、MISO、 MISO:主机输入,从机输
精选课件ppt
11
1.2.2 74LS164真值表
输入
Clear Clock
AB
L
X
XX
H
L
XX
H
↑
HH
H
↑
LX
H
↑
XL
精选课件ppt
输出 QA QB ···QH LLL
HHH LLL LLL
12
74LS164的时钟是由ARM处理器产生,每来1个上升 沿74LS164就接收1位数据。
假设要使QA~QH=10110011,则ARM要发送一串数 据10110011给A、B输入端,并产生相应的时钟信号。 如下图:
内核
输出数 据缓冲
器
…
微机原理-教案(第10章)

邹逢兴:《微型计算机接口原理与技术》;电子工业出版社。
教研室
意见
教研室主任签章:年 月 日
教学后记(即教学实施情况总结分析,在课程结束后填写)
10.3.58251A应用举例结、复习思考及作业题布置:
10.110.210.3
教学中的创新点(加强基础与实践联系、外语运用、启发学生思维、指导学生自学、介绍学科新进展等方面):
参考资料(包括辅助教材、参考书、文献等)
郑学坚周斌:《微型计算机原理及应用》;清华大学出版社。
南华大学教案(完整教案)
授课题目(章节或主题)
第10章串行通信及其接口电路
授课时间
授课时数
2学时
教学课型
理论课√实验课□习题课□讨论课□实习(践)课□其它□
教材名称、作者、出版社及出版时间
《微机原理》作者:王克义出版社:清华大学出版社出版时间:2014.7.
教学目标与要求:
掌握串行通信及其特点
主要知识点、重点与难点:
(1)串行通信的特点、常用术语和基本概念
(2)串行通信接口8251A
教学方法(请打√选择):讲授法√讨论法□演示法√自学辅导法□练习法(习题或操作)读书指导法□PBL(以问题为中心的教学法)□案例法□其他□
教学媒体(请打√选择):教材√板书√实物□标本□挂图□模型□多媒体√幻灯□录像□CAI(计算机辅助教学)□
教学过程设计(包括讲授内容、讲授方法、时间分配、媒体选用、板书设计等):
第10章串行通信及其接口电路
10.1串行通信
10.1.1串行通信的特点
10.1.2串行通信涉及的常用术语和基本概念
10.3可编程串行通信接口8251A
EDA应用大作业《串行通信》

四川工程职业技术学院电子信息工程09-1班《EDA应用》大作业串行通信第3组:杨国勋、李开宏、彭国明2011.10目录一、设计任务 (1)二、硬件设计 (1)1、硬件电路图 (1)2、整体模块 (2)三、软件设计 (2)1、主程序模块 (2)2、发送模块 (5)3、接收模块 (7)四、实验结果 (9)五、开发工具 (10)1、硬件 (10)2、软件 (10)六、项目总结 (10)1、遇到的问题 (10)2、解决的办法 (10)七、参考文献 (10)一、设计任务综合运用所学基本知识,通过在FPGA开发板子完成与计算机进行RS232串口通信,计算机上的软件可以使用串口通信调试软件进行数据发送或接收数据。
根据设计要求,应把系统分成4个模块来完成,这四个模块分别是:时钟模块(向系统各部分提供各种频率的时钟信号)收发模块(进行串行通信的发送和接收)显示模块(显示通信的数据格式)控制模块(控制系统的工作)二、硬件设计1、硬件电路图2、整体模块三、软件设计1、主程序模块module uart_test(clock,key,rdata,wen,sdata,seg,dig);input clock; //系统时钟(48MHz) input[2:0] key; //按键输入(KEY1~KEY3) input[7:0]rdata; //接收到的数据output wen; //发送数据使能output[7:0]sdata; //要发送的数据output[7:0]seg; //数码管段码输出output[7:0]dig; //数码管位码输出//I/O寄存器reg[7:0]sdata;reg[7:0]seg;reg[7:0]dig;//内部寄存器reg[16:0]count; //时钟分频计数器reg[2:0]dout1,dout2,dout3,buff; //消抖寄存器reg[1:0] cnt; //数码管扫描计数器reg[3:0]disp_dat; //数码管扫描显存reg div_clk; //分频时钟wire[2:0]key_edge; //按键消抖输出//时钟分频部分always @(posedge clock)beginif (count < 17'd120000)begincount <= count + 1'b1;div_clk <= 1'b0;endelsebegincount <= 17'd0;div_clk <= 1'b1;endend//按键消抖部分always @(posedge clock)beginif(div_clk)begindout1 <= key;dout2 <= dout1;dout3 <= dout2;endend//按键边沿检测部分always @(posedge clock)beginbuff <= dout1 | dout2 | dout3;endassign key_edge = ~(dout1 | dout2 | dout3) & buff;//2位16进制数输出部分always @(posedge clock) //按键1 beginif(key_edge[0])sdata[7:4] <= sdata[7:4] + 1'b1;endalways @(posedge clock) //按键2beginif(key_edge[1])sdata[3:0] <= sdata[3:0] + 1'b1;endassign wen = key_edge[2]; //按键3//数码管扫描显示部分always @(posedge clock) //定义上升沿触发进程beginif(div_clk)cnt <= cnt + 1'b1;endalways @(posedge clock)beginif(div_clk)begincase(cnt) //选择扫描显示数据2'd0:disp_dat = sdata[7:4]; //第一个数码管2'd1:disp_dat = sdata[3:0]; //第二个数码管2'd2:disp_dat = rdata[7:4]; //第七个数码管2'd3:disp_dat = rdata[3:0]; //第八个数码管endcasecase(cnt) //选择数码管显示位2'd0:dig = 8'b01111111; //选择第一个数码管显示2'd1:dig = 8'b10111111; //选择第二个数码管显示2'd2:dig = 8'b11111101; //选择第七个数码管显示2'd3:dig = 8'b11111110; //选择第八个数码管显示endcaseendendalways @(disp_dat)begincase(disp_dat) //七段译码4'h0:seg = 8'hc0; //显示04'h1:seg = 8'hf9; //显示14'h2:seg = 8'ha4; //显示24'h3:seg = 8'hb0; //显示34'h4:seg = 8'h99; //显示44'h5:seg = 8'h92; //显示54'h6:seg = 8'h82; //显示64'h7:seg = 8'hf8; //显示74'h8:seg = 8'h80; //显示84'h9:seg = 8'h90; //显示94'ha:seg = 8'h88; //显示a4'hb:seg = 8'h83; //显示b4'hc:seg = 8'hc6; //显示c4'hd:seg = 8'ha1; //显示d4'he:seg = 8'h86; //显示e4'hf:seg = 8'h8e; //显示f endcaseendendmodule2、发送模块module send(clk,clkout,Datain,TXD,TI,WR);input WR;input [7:0]Datain; //发送的一字节数据input clk;output clkout;output TXD,TI; //串行数据,发送中断reg[9:0]Datainbuf,Datainbuf2; //发送数据缓存reg WR_ctr,TI,txd_reg;reg [3:0]bincnt; //发送数据计数器reg [15:0] cnt;wire clk_equ;parameter cout = 5000;/*************波特率发生进程****************************/ always@(posedge clk)beginif(clk_equ)cnt = 16'd0;elsecnt=cnt+1'b1;endassign clk_equ = (cnt == cout);assign clkout = clk_equ;/*************读数据到缓存进程****************************/ always@(posedge clk)beginif(WR)beginDatainbuf={1'b1,Datain[7:0],1'b0};//读入数据,并把缓存组成一帧数据,10位WR_ctr = 1'b1; //置开始标志位endelse if(TI==0)WR_ctr = 1'b0;end/*************主程序进程****************************/ always@(posedge clk)beginif(clk_equ)beginif(WR_ctr==1||bincnt<4'd10) //发送条件判断,保证发送数据的完整性beginif(bincnt<4'd10)begintxd_reg = Datainbuf2[0]; //从最低位开始发送Datainbuf2 = Datainbuf>>bincnt; //移位输出bincnt = bincnt+4'd1; //发送数据位计数TI = 1'b0;endelsebincnt = 4'd0;endelsebegin //发送完毕或者处于等待状态时TXD和TI为高txd_reg = 1'b1;TI = 1'b1;endendendassign TXD = txd_reg; //TXD连续输出endmodule3、接收模块module rec(clk,clkout,Dataout,RXD,RI);input clk,RXD;output clkout,RI;output [7:0] Dataout; //并行数据输出reg StartF,RI;reg [9:0] UartBuff; //接收缓存区reg [3:0]count,count_bit;reg [15:0] cnt;reg [2:0]bit_collect; //采集数据缓存区wire clk_equ,bit1,bit2,bit3,bit;parameter cout = 312;//时钟是48M所以16*9600的分频数为312.5,这里取整数/*************波特率发生进程****************************/ always@(posedge clk)beginif(clk_equ)cnt = 16'd0;elsecnt=cnt+1'b1;endassign clk_equ = (cnt == cout);assign clkout = clk_equ;assign bit1 = bit_collect[0]&bit_collect[1]; assign bit2 = bit_collect[1]&bit_collect[2]; assign bit3 = bit_collect[0]&bit_collect[2]; assign bit = bit1|bit2|bit3;always@(posedge clk)beginif(clk_equ)beginif(!StartF) //是否处于接收状态beginif(!RXD)begincount = 4'b0; //复位计数器count_bit = 4'b0;RI = 1'b0;StartF = 1'b1;endelse RI = 1'b1;endelsebegincount = count+1'b1; //位接收状态加1if(count==4'd6)bit_collect[0] = RXD; //数据采集if(count==4'd7)bit_collect[1] = RXD; //数据采集if(count==4'd8)beginbit_collect[2] = RXD; //数据采集UartBuff[count_bit] = bit;count_bit = count_bit+1'b1;//位计数器加1if((count_bit==4'd1)&&(UartBuff[0]==1'b1))//判断开始位是否为0beginStartF = 1'b0; //标志开始接收endRI = 1'b0; //中断标志位低endif(count_bit>4'd9) //检测是否接收结束beginRI = 1'b1; //中断标志为高标志转换结束StartF = 1'b0;endendendendassign Dataout = UartBuff[8:1]; //取出数据位endmodule四、实验结果(1) 在工作状态下,若用户按下K1按键,则数码管1上的数字加 1(0~F循环);(2) 在工作状态下,若用户按下K2按键,则数码管2上的数字加 1(0~F循环);(3) 在工作状态下,若用户按下K3按键,则把数码管1和2上的数字通过串口发送到串口调试软件的接收窗口;(4) 在工作状态下,若用户通过串口调试软件在发送窗口发送数字,则在数码管7和8上显示相应的数字。
串行通讯的概念ppt课件

目前,计算机中的并行针D形接头。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,容易出错。 现在有五种常见的并口:4位、8位、半8位、EPP和ECP,大多数PC机配有4位或8位的并口,许多利用Intel386芯片组的便携机配有EPP口,支持全部IEEE1284并口规格的计算机配有ECP并口。 标准并行口4位、8位、半8位:4位口一次只能输入4位数据,但可以输出8位数据;8位口可以一次输入和输出8位数据;半8位也可以。 EPP口(增强并行口):由Intel等公司开发,允许8位双向数据传送,可以连接各种非打印机设备,如扫描仪、LAN适配器、磁盘驱动器和CDROM 驱动器等。 ECP口(扩展并行口):由Microsoft、HP公司开发,能支持命令周期、数据周期和多个逻辑设备寻址,在多任务环境下可以使用DMA(直接存储器 访问)。
RS-232C的接口信号 ---TxD RxD
(2)数据发送与接收线: 发送数据(Transmitted data-TxD)——通过TxD终端将串行数据发送到MODEM,(DTE→DCE)。 接收数据(Received data-RxD)——通过RxD线终端接收从MODEM发来的串行数据,(DCE→DTE)。 (3)地线 有两根线SG、PG——信号地和保护地信号线,无方向。
RS-232C的接口信号 RTS CTS
请求发送(Request to send-RTS)——用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。它用来控制MODEM是否要进入发送状态。 允许发送(Clear to send-CTS)——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。 这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。在全双工系统中作发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)起始位的检测
必须确定起始位才能开始接收数据,即实现位同步。
数据接收时钟RCLK使用16倍波特率的时钟信号。接收器 用RCLK检测到串行数据输入引脚SIN由高电平变低后,连续 测试8个RCLK时钟周期,若采样到的都是低电平,则确认为 起始位。
由于RS-232C的EIA电平与微机的逻辑电平 (TTL电平或CMOS电平) 不兼容.所以两者间需 要进行电平转换。MCl488(完成TTL电平到EIA 电平的转换)和MCl489(完成EIA电平到TTL电平 的转换)等芯片。
MAX232电平转换电路如图所示,能实现两路TTL 电平到EIA电平、两路EIA电平到TTL电平的转换。
10.1.6 串行接口标准RS-232C
最初 RS-232C串行接口的设计目的是用于连接 调制解调器。目前,RS-232C已成为数据终端设备 DTE(例如计算机)与数据通信设备DCE(例如调制解 调器)的标淮接口。利用RS-233C接口不仅可以实 现远距离通信,也可以近距离连接两台微机或电 子设备。
DSR 数据装置准备好——通常表示数据通信设备(即数据装置)已接通 电源连到通信线路上,并处于数据传输方式,而不是处于测试方式或 断开状态。
CD 载波检测——当本地调制解调器接收到来自对方的载波信号时,就 从该引脚向数据终端设备提供有效信号。该引脚缩写为DCD。
RI 振铃指示——当调制解调器接收到对方的拨号信号期间,该引脚 信号作为电话铃响的指示,保持有效。
2.RS-232C的连接
计算机由RS-232C接口连接调制解调器
两台微机直接利用RS-232C接口进行短距离通信
3.RS-232C的电气特征
高电平为+3V~+15V,低电平为-3V~-15V。 实际应用中常采用±12v或±15v。
高电平表示逻辑0,用符号SPACE(空号)表示; 低电平表示逻辑1,用符号MARK(传号)表示。
GND 信号地——为所有的信号提供一个公共的参考电平
RTS 请求发送——当数据终端设备准备好送出数据时,就发出有效的 RTS信号,用于通知数据通信设备准备接收数据。
CTS 清除发送——当数据通信设备已准备好接收数据终端设备的传送 数据时,发出CTS有效信号来响应RTS信号。
DTR 数据终端准备好——通常当数据终端设备一加电,该信号就有效, 表明数据终端设备准备就绪。
10.1.2 异步串行通信
异步传送是计算机通信中常用的串行通信方式。异步是指 发送端和接收端不使用共同的时钟,也不在数据中传送同步 信号。在这种方式下,收方与发方之间必须约定数据帧格式 和波特率。
1. 数据帧格式
2、波特率(Baud Rate)
波特率是衡量串行数据传送速度的参数,是指 单位时间内传送二进制数据的位数,以位/秒为单 位(或bps,bit/s),也称为波特。
解:12(位/秒)×1000= 12000(字符),波特率应大于 12000位/秒。
10.1.3 同步串行通信
同步传送时,无需起始位、停止位。每一帧包 含较多的数据,在每一帧开始处使用1-2个同步 字符以表示一帧的开始。
10.1.4 串行通信中的数据传送模式
1、单工 2、半双工 3、全双工
10.1.5 信号的调制和解调
10.1 基本概念
10.1.1 串行通信与并行通信
并行通信是指利用多根传输线将多位数据同时进行传送。1字节 的数据通过8条传输线同时发送。由于并行通信方式使用的线路 多,一般用在如计算机与打印机等距离短、数据量大的场合。 串行通信是指利用一条传输线将数据一位一位地按顺序分时传 输。当传送一字节的数据时,8位数据通过一条线分8个时间段 发出,发出顺序一般是由低位到高位。
2.结构
其中寄存器: THR、TSR RBR、RSR LCR LSR DLH DLL MCR MSR IER IIR
(1)串行数据的发送
CPU送来的并行数据存在发送保持寄存器THR中。
只要发送移位寄存器TSR中没有正在发送的数据, 发送保持寄存器的数据就送入TSR 。
与此同时,8250按照编程规定的起止式字符格式, 加入起始位、奇偶校验位和停止位,从串行数据输 出引脚SOUT逐位输出。
1.RS-232C的引脚定义
RS-232C接口标准使用标准的25针D型连接器即 DB-25。PC机已使用9针连接器取代25针连接器。
9针连接器 引脚号
3 2 7 8 6 5 1 4 9
25针连接器 引脚号
1 2 3 4 5 6 7 8 20 22 15 17
名称
保护地 发送数据TxD 接收数据RxD 请求发送RTS 清除发送CTS 数据装置准备好DSR 信号地GND 载波检测CD 数据终端准备好DTR 振铃提示RI 发送时钟TxC 接收时钟RxC
【例题10.1】设数据帧为1位起始位、1位终止位、7位数据 位、1位奇偶校验位,传送的波特率为1200(波特)。用7 位数据位代表一个字符,求最高字符传送速度。
解:1200(位/秒)/10(位)= 120(字符) 【例题10.2】设数据帧为1位起始位、2位终止位、8位数据
位、1位奇偶校验位,要求每秒传送字符数大于1000字节, 则波特率应大于多少波特?
பைடு நூலகம்
25针连接器 引脚号
12 13 14 16 19 21 23 24 9、10 11 18 25
名称
次信道载波检测 次信道清除发送 次信道发送数据 次信道接收数据 次信道请求发送 信号质量检测 数据信号速率选择 终端发生器时钟 保留 未定义 未定义 未定义
TxD 发送数据——串行数据的发送端。
RxD 接收数据——串行数据的接收端。
10.2 通用可编程串行通信接口芯片NS8250
10.2.1 NS8250概述
1.基本功能 ● 支持串行异步通信协议 ● 支持全双工通信 ● 数据位可选5~8位,停止位可选1、1.5或2位, 可奇偶校验,具有奇偶、帧和溢出错误的检测。 ● 具有带优先级排序的中断系统,有多种中断源 ● 发送和接收均采用双缓冲器结构。 ● 使用单一的5V电源,40脚双列直插型封装。