第8章并行与串行接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UxRCTL
1: 错误 0: 正确
奇偶校验错
断开条件(break conditions):
(parity errors) 连续接收到10位及以上的“0”
溢出错误(overrun errors):
未及时读出,被新接收到的字节覆盖
帧错误(framing errors): 停止位错误(第1个停止位=“0”)
Td
接收器
RxD
串行方式的优点: 信号线少,传输距离远,接线方便、成本低等
串行方式的缺点: 传输速度相对较慢
串行通信的基本概念
①波特率 (Baudrate)
是串行通信中衡量数据传输速率的单位,即每秒传送的二进制数据的位 数,以位/秒(bps)表示。常用的波特率有:1200、2400、4800、9600、 19200 bps 等
状态
1
0
状态
URXEIE= URXWIE=
0: 若接收到错误字符,则不存入 UxRXBUF ,
并且不置位 URXIFGx
1: 接收到的字符无论错对,都存入 UxRXBUF,
并置位 URXIFGx
全收方式
0: 接收到的字符无论是地址还是数据,
都置位 URXIFGx( URXEIE=1 )
1: 仅接收到地址字符时,
PA4 PA5 PA6 PA7 WR RESET D0 D1 D0 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3
8255A的编程结构
D7 数据总线
~ D0
IOR IOW
A9 ~ A2
RD WR
片选 CS 译码
8255A并行接口
数据 缓冲
器
读写 控制 电路
端口A 端口C 端口B
PA7 ~
PA0
PC7 外 ~
PC0 设
PB7 ~
PB0
A1 A0
A1 片内 A0 译码
控制端口D
8255A的工作方式
方式0 : A 口8位全输入或全输出
B 口8位全输入或全输出
C 口高4位全输入或全输出
C 口低4位全输入或全输出
方式1 : A口或B口工作在方式 1,C口的某3根引脚作为端口 与外设的联络信号
需要两根数据线
半双工方式
数据能从A方传送到B方,也能从B方传送到A方, 但是不能同时在两个方向上传送, 每次只能由一方发送,另一方接收。
A
B
发送器
发送器
接收器
接收器
A
发送器
接收器
B
发送器
接收器
通信双方通过软件控制实现发送/接收方的角色转换
半双工方式广泛地应用于主从结构的系统中
主站
集散系统 分布式系统
8位中使其中的2个bit的宽度=(27+1)个BRCLK, 其它的6个bit的宽度=27个BRCLK UxMCTL=00000011b or 00010001b or 00100010b ……
接收错误 RXERR =FE+PE+OE+BRK
无地址位全收方式查询接收程序举例 —— 共接收16字节并存入BUFFER 开始的存储器中。
不考虑超时等待 假定接收器已初始化为全收方式,即:接收到的字符无论 是地址还是数据,无论错对,都存入 UxRXBUF,并置位 URXIFGx。
MOV #16 , R9 MOV #0 , R5
0: UART mode 1: SPI mode
0: without AD bit protocol 1: with AD bit protபைடு நூலகம்col
常用异步串行字符格式举例:
8位数据位、偶校验、 2位停止位、无地址位格式
LSB
MSB
D0 D1 D2 D3 D4 D5 D6 D7
起 始
数据位
校 验
位
波特率= 1/Td,单位:bps ( bits per second )
发送器
TxD
D7 D6 D5 D4 D3 D2 D1 D0
Td
接收器
RxD
②检错与奇偶校验(奇校验、偶校验)
z 数据在传输过程中,由于干扰可能引起信息的出错。检 查传输中的错误,叫检错;
z 最简单的检错方法是奇偶校验,即在传送字符的各位之 外,再传送1位奇/偶校验位。可采用奇校验或偶校验:
波特率寄存器
波特率 时钟选择
波特率调整寄存器
当BRCLK能被 波特率整除时
UxMCTL=0
波特率=BRCLK/N
( 3≤N<0FFFFh )
最大波特率=BRCLK/3
N=BRCLK周期数每bit
N=BRCLK周期数每bit —— 波特率因子
波特率寄存器值计算举例
要求: BRCLK=ACLK=32768Hz 波特率=1200BPS
④异步串行与同步串行
同步串行:使用独立的同步时钟信号线来实现位同步
SCLK DATA
D0 D1 D2 D3 D4 D5 D6 D7
异步串行:不使用独立的同步时钟信号线,位同步 靠起始位、停止位等实现
DATA
LSB
起 始 位
数据位
MSB
校停 验止 位位
第3节 MSP430 USART 外设
USART 的两种工作方式:
才可以向其写数据发送!
无地址位格式查询方式发送程序举例
——发送从BUFFER 开始的16字节 假定USART已经初始化
MOV #16 , R9 MOV #BUFFER , R5
Tchk BIT.B #UTXIFG0 , &IFG1
JZ
Tchk
; or #TXEPT , &U0TCTL
MOV.B @R5+ , &U0TXBUF DEC R9 JNZ Tchk
LSB
MSB
D0 D1 D2 D3 D4 D5 D6 D7 AD PA SP SP
起
数据位
地 校 停止位
始
7 or 8
址 验 1 or 2
位
位位
mark space
0: odd parity 1: even parity
0: 7-bit data 1: 8-bit data
0: parity disabled 0: one stop bit 1: parity enabled 1: two stop bits
方式2 : A口工作在方式 2,C口的某5根引脚作为端口 与外设的联络信号
8255A的方式控制字:
用于设定A口、B口、C口的工作方式
D7 D6 D5 D4 D3 D2 D1 D0
100
11011
特征位 D7=1表示 方式控制字
A口 0 输出 1 输入
PC3~PC0
B口 0 输出
0 输出 1 输入
1 输入
第8章 并行与串行接口
第1节 并行接口与MSP430的digital I/O 第2节 串行通信的基本概念 第3节 MSP430 USART 外设 第4节 MSP430 的异步串行方式(UART Mode) 第5节 MSP430 的异步串行方式编程方法
本章教学目标 1. 了解异步串行通信原理; 2. 掌握MSP430 异步串行接口的组成和工作原理; 3. 掌握MSP430 异步串行接口的编程方法。
Rchk BIT.B #URXIFG0 , &IFG1
JZ
Rchk
; URXIFG0=1,表示接收 ; 缓冲器中有新数据可读
MOV.B &U0RXBUF , BUFFER(R5) BIC.B #URXIFG0 , &IFG1 INC R5 DEC R9 JNZ Rchk
MSP430 USART 的波特率发生器
第4节 MSP430 的异步串行通信方式 (UART Mode,SYNC=0)
USART 控制寄存器——UxCTL
UxCTL
UART mode 的主要编程结构
UxMCTL UxBR0 UxBR1 波特率设置用 寄存器
时钟选择
接收移位寄存器
URXDx
接收缓冲器UxRXBUF 接收控制/状态寄存器UxRCTL
UART Mode —— 异步串行通信方式 SPI Mode —— 同步串行通信方式
USART:
UART: SPI:
Universal Synchronous/Asynchronous Receive/Transmit Universal Asynchronous Receive/Transmit
Synchronous peripheral interface
从站1
从站2
例:RS-485总线
从站n
• 每个站均有通信地址(定址原则) • 平时从站都处于接收状态,等待来自主站的命令 • 当从站接收到来自主站的命令后,若需要响应,
则将自己置为发送状态,并发送响应,发送完毕后再置为接收状态
• 当主站要发送命令时,置主站为发送状态 当主站发送命令完毕后,置主站为接收状态,以接收从站的响应
接收方式:
全收方式——接收到的字符无论错对,无论是地址 还是数据字符,都转存入接收缓冲器UxRXBUF中, 并置位接收中断标志位 URXIFGx的接收方式;
选收方式——仅当接收到的字符是正确的地址/数据 字符时才存入UxRXBUF,并置位 URXIFGx
USART 接收控制寄存器(UxRCTL)编程
则:N=BRCLK/波特率=32768/1200=27.31
整数部分确定波特率寄存器 UxBR1 和 UxBR0 的值 27=001Bh--->高字节:UxBR1=00h , 低字节:UxBR0=1Bh
小数部分确定波特率调整寄存器 UxMCTL 的值 0.31×8=2.48---取整--->2------>
第1节 并行接口与MSP430的digital I/O
并行 —— 多位信息沿着各自的信号线或引脚 同时输入/输出
D15 D14
CPU
D1 D0
接存储器、I/O接口
MSP430
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
接外扩并口器件或设备
可编程并行接口 8255A
~
WR
PB7 扬声器发声等
A0
A1
PC0 读入系统配置
片
~
选 60~7FH CS
PC7
译
码码 A、B、C三个端口均工作在方式0
MSP430 的 digital I/O
第2节 串行通信的基本概念
串行 —— 多位信息沿着同一根信号线或引脚 依次分时输入/输出
发送器
TxD
D7 D6 D5 D4 D3 D2 D1 D0
才置位 URXIFGx ( URXEIE=1 )
BIS.B #URXEIE , &U0RCTL
USART 的接收器的状态
读UxRXBUF操作将清零FE,PE,OE,BRK,RXERR等标志位 因此错误标志位的判断应在读UxRXBUF操作前进行。 错误标志位也可由软件清零。
0: received character is data 1: received character is an address
A口工作方式
00 方式0 01 方式1 1x 方式2
B口工作方式
PC7~PC4 0 输出
0 方式0 1 方式1
1 输入
8255A在IBM PC/XT主板上的应用
总线
D0 ~ D7
数据线
并行接口8255A
D0
PA0
~
~
D7
PA7
读键盘扫描码
IOR IOW
A0 A1
A5 ~ A7
RD
PB0 输出控制信号
控制寄存器UxCTL 发送控制/状态寄存器UxTCTL
发送缓冲器UxTXBUF
发送移位寄存器
UTXDx
MDB8 MAB MCB
数据缓冲 地址译码 控制逻辑
模块使能寄存器ME1/ME2
中断使能寄存器IE1/IE2 中断标志寄存器IFG1/IFG2
特殊功能寄存器 SFR
UART Mode 字符格式(Character Format)
; R5 points to a data byte
注意:有 2 种等效的判发送缓冲器为空/满的方法
UART Mode 的接收原理
MSP430 UART Mode 的同步与定位原理
位起始同步:与USART的时钟同步
以 N=14 为例
在中间位置 3 次采样 并按少数服从多数的 表决机制确定每位的值 (majority vote taken)
PA3 PA2 PA1 PA0 RD CS GND
A1 A0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB0 PB1 PB2
8255A
1
40
2
39
3
38
4
37
5
36
6
35
7
34
8
33
9
32
10
31
11
30
12
29
13
28
14
27
15
26
16
25
17
24
18
23
19
22
20
21
位
停止位
UxCTL 1 1 1 1 0 0 0x
BIS.B #PENA+PEV+SPB+CHAR , &U0CTL
UART Mode 的发送
USART 发送控制寄存器(UxTCTL)
时钟源选择
0:发送数据字符 1:发送地址字符
0: 禁止起始沿 接收功能
发送缓冲器 状态标志位
1:空 0:满
仅当发送缓冲器为空时,
奇校验:使所有传送的数位(含校验位)中1的个数为奇数
偶校验:使所有传送的数位(含校验位)中1的个数为偶数
LSB
MSB
起
数据位
校停
始
验止
位
位位
③串行数据传送方式
按照数据流的方向,分成三种基本的传送方式: 单工方式、全双工方式、半双工方式
单工方式
A
发送器
B
接收器
全双工方式
A
发送器
接收器
B
接收器 发送器