微机接口原理--实验四 8251串行收发实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

读/写控制信号— RD ,读信号为低电平时,通知 8251,CPU当前正从8251读取数据或者状态信息。WR 写信 号,为低电平时,通知8251,CPU当前正在往8251写入数 据或者控制信息。 C / D 控制/数据信号, 也是CPU送往 8251的信号,用来区分当前读写的是数据还是控制信息或状 态信息。
TxD(Transmitter Data )——发送数据信号端TxD 用来输出数据。CPU送往8251的并行数据被转换为串行数 据后,通过TxD送往外设。 RXD(Receiver Data )——接收器数据信号端RxD用 来接收外设送来的串行数据,数据进入8251后被转变为并 行方式。
4. 8251 的控制字
② 8251与外部设备之间的信号连接
DTR (Data Terminal Ready )数据终端准备好信号, 是由8251送往外设的,CPU通过命令可以使它变为低电平,从 而通知外部设备,CPU当前已经准备就绪。
DSR (Data Set Ready )数据设备准备好信号,是由外设 送往8251的,低电平时有效,表示当前外设已经准备好。当它出 现低电平时,会在8251的状态寄存器第7位上反映出来,所以, CPU通过对状态寄存器的读取操作,便可以实现对/DSR信号的 检测。 RTS (Request To Send )请求发送信号,是8251送往外 设,低电平时有效,CPU可以通过编程命令使之变为有效电平, 以表示CPU已经准备好发送。 CTS (Clear To Send)清除请求发送信号,是对RTS的 响应信号,它是由外设送往8251的,为低电平时,8251才能执 行发送操作。
已置位,即已准备好)在屏幕上显示字符。若是ESC键,
(0x1b),退出。
提示:在程序中涉及的函数,getch(),putch()。
2. 串行通信的重要的概念
① 同步与异步通信
同步通信:数据传送是以数据块(一组字符)为 单位,字符与字符之间、字符内部的位与位之间 都同步。
特点: a.以数据块为单位传送信息。 b.在一个数据块(信息帧)内,字符与字符间无 间隔。 c.接收时钟与发送时钟严格同步。 组成: a.2个同步字符作为一个数据块(信息帧)的起始标志; b.n个连续传送的数据; c.2个字节循环冗余校验码(CRC)
TxRDY(Transmitter Ready)——发送器准备好信 号,8251已经准备好发送一个字符。 TxE( Transmitter Empty )——发送空信号,TxE 为高电平时有效,用来表示此时8251发送器中并行到串 行转换器空,它实际上指示了一个发送动作的完成。 RxRDY(Receiver Ready)——接收器准备好信号, 用来表示当前8251已经从外部设备或调制解调器接收到 一个字符,正等待CPU取走。 SYNDET(Synchronous Detect )——同步检测信 号,只用于同步方式。SYNDET引脚可工作在输入状态, 也可工作在输出状态,这决定于8251A工作在内同步状态 还是工作在外同步情况,而这两种情况又决定于8251的 初始化程编程。
1. 数据的传输过程 ① 数据输入:数据1位1位地从外设进入接口的 “接收移位寄存器”,当“接收移位寄存器”中 已接收完1个字符的各位后,数据就从“接收移 位寄存器”进入“数据输入寄存器”。CPU从 “数据输入寄存器”中读取接收到的字符。(并 行读取,即D7~D0同时被读至累加器中)。 ② 数据输出:CPU把要输出的字符(并行地) 送入“数据输出寄存器”,“数据输出寄存器” 的内容传输到“发送移位寄存器”,然后由“发 送移位寄存器”移位,把数据1位1位地送到外设。
具有奇偶、溢出和帧错误检测电路。
2. 组成
8251方框图
接受器:接收在RxD脚上的串行数据并按规定 把它转换为并行数据,存放在数据总线缓冲器 中; 发送器:负责接收CPU送来的并行数据,加上 起始位、奇偶校验位和停止位然后由TxD脚发 送; I/O控制:读/写控制逻辑对CPU输出的控制信 号进行译码以实现相应的读写操作。
异步通信:数据传送以字符为单位,字符与字符 间的传送是完全异步的,位与位之间的传送基本 上是同步的。即字符间异步,字符内部各位同步。
特点:
a.以字符为单位传送信息。 b.相邻两字符间的间隔是任意长。 c.接收时钟和发送时钟只要相近就可以。
组成:
a.1位起始位,规定为低电平; b.5~8位数据位,传送的有效信息; c.1位奇偶校验位; d.1~2位停止位,规定为高电平1。
① 查找PCI9054卡是否存在,获取相应地址; ② 执行8251初始化; ③ 执行发送、接收字符函数; ④ 在屏幕上显示结果
实验要求:
本实验可以在相邻的实验箱相互发送接收数据,相当于 在QQ上键聊(只能使用英文输入)。
编程思路:
1. 8251初始化 ;(包括软件复位:向控制/状态端口 连续写入三个0;写入复位字40H。写入方式字和命 令字)。 2. 编写发送和接收函数(接收时,需设置状态字,信 号RXRDY有效(或状态字的D1=1),以示8251A 已接收到一个数据,待CPU读取,采用查询方式利 用8251A传送数据时,可通过对状态位RXRDY测试 进行数据的传送。) 3. 执行主程序:
1. 8251初始化 ① 内部进行复位:在8251状态口写入复位字40H; ② 设置方式字:11001110,0xce,异步方式,波特 率因子为16,字符长度8位,无奇偶检验,两个停 止位; ③ 设置命令字:00100101,0x25,请求发送,允 许发送、接收;
2.编写发送与接收函数
3.主程序任务
① 方式控制指令:规定8251的工作方式。
② 命令指令:命令指令直接使8251处于规定的工作状 态,准备发送或接收数据。
③ 状态寄存器: CPU通过I/O读操作把8251状态字读入 CPU,用以控制CPU与8251之间的数据交换。
8251的状态寄存器与控制寄存器
三、8251串行收发原理及编程方法
② 波特率
串行通信的信号常常通过调制解调器进行传输, 在调制器、通信线路、解调器之间,用单位时 间内电信号变化的数目来描述传输的速度称之 为波特率。一般串行异步通行的传送速度为 50~19200波特,串行同步通信的传送速度可 达500千波特。 波特率与数字信号传输率的关系:
C=B*log2n
(C为数据信号的传输率,B为波特率,n为调制信号数或线 路状态数,它为2的整数倍)
① 查找PCI9054卡是否存在,获取相应地址;
② 执行8251的初始化;
③ 进行判断,若有键按下,是ESC键吗?若不是,执行发送
函数送文件头,字符串,结束标志,是在规定的字符串范围吗?
是在可显示的键的范围吗?(0x20—0x7d))若是,无回显得 到字符。若接收函数为真,(读8251z的状态信息,若状态位
发送器:将并行码转换为一定数据格式的串行码。
控制器:用以接收CPU的控制信号、执行CPU所要 求的操作,并输出状态信息和控制信息。
二、8251芯片
1. 基本性能 可用于同步与异步传输; 同步传送:5-8位/字符,内部或外部同步,可自 动插入同步字符; 异步传送:5-8位/字符,时钟速率为通信波特率 的1、16、64倍; 可产生1、1.5或2位的停止位; 波特率:DC-19.2k(异步),DC-64k(同步)
③ 波特率因子
时钟脉冲频率与波特率的比 。
接收时钟/发送时钟应为波特率的16、32或64倍。 波特率因子就是发送/接收1个数据(1个数据位) 所需要的时钟脉冲个数,其单位是个/位。
例:波特率=9600bps,波特率因子=32,则接收 时钟和发送时钟频率=9600×32=307200Hz。
④ 硬件UART(Universal Asynchronous Receiver /Transmitter )--通用非同步(异步) 接收器/发送器 组成:接收器、发送器、控制器。 接收器:将接收到的串行码转换成并行码,并对其 进行错误检测。
3. 8251接口信号
wk.baidu.com
CPU通过8251与串行外设接口
① 与CPU的接口信号
DB7-DB0—8251的外部三态双向数据总线,可连接到 CPU数据总线,CPU与8251之间的命令、数据、状态信息 都是通过这组数据总线进行传输的;
CS ——片选信号是CPU的地址信号通过译码后得到的。
CS
为低电平时,8251A 被选中。
实验四 8251串行收发实验
主要内容
串行通信 8251芯片工作原理 8251编程原理及PC机通信的方法
一、串行通信
串行通信是指外设和计算机间使用一根数据信 号线(另外需要地线,可能还需要控制线),数据在 一根数据信号线上一位一位地进行传输,每一 位数据都占据一个固定的时间长度。这种通信 方式使用的数据线少,在远距离通信中可以节 约通信成本,传输速度比并行传输慢。 由于CPU与接口之间按并行方式传输,接口与 外设之间按串行方式传输,因此,在串行接口 中,必须要有“接收移位寄存器”(串→并) 和“发送移位寄存器”(并→串)。
相关文档
最新文档