第7章 PIC单片机串行口及串行通信技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章PIC18FXX2串行口及串行通信技术
•教学目标
串行通信基本知识
串行口及应用
PIC18FXX2与PC机间通信软件的设计
本章知识点概要
• 1.什么是串行通信,串行通信有什么优点?
• 2.串行通信协议
• 3.什么是波特率?
• 4.PIC18FXX2中的串行口工作方式及应用
• 5.PIC18FXX2点对点通信
•针对PIC18FXX2串行口而言,概括为以下问题:
1、波特率设计,初始化SPBRG
2、设定通信协议(工作方式选择,SYNC)
3、如何启动PIC18FXX2接收、发送数据?
4、如何检查数据是否接收或发送完毕?
7.1 7.1 串行通信基本知识串行通信基本知识
•在实际工作中,计算机的CPU 与外部设备之间常常要进行信息交换,一台计算机与其他计算机之间也要交换信息,所有这些信息交换均可称为通信。
•通信方式有两种,即并行通信和串行通信。
•采用哪种通信方式?----通常根据信息传送的距离决定例如,PC 机与外部设备(如打印机等)通信时,如果距离小于30 m ,可采用并行通信方式;当距离大于30 m 时,则要采用串行通信方式。
PIC18FXX2单片机具有并行和串行二种基本通信方式。
并行通信
•并行通信是指数据的各
位同时进行传送(发送
或接收)的通信方式。
•优点:传送速度快;
•缺点:数据有多少位,
就需要多少根传送线。
•例如,右图PIC18FXX2
单片机与外部设备之间
的数据传送就属于并行
通信。
串行通信
•串行通信是指数据一位(bit)一位按顺序传送的通信方式。
•优点:只需一对传输线(利用电话线就可作为传输线),大大降低了传送成本,特别适用于远距离通信;
•缺点:传送速度较低。
假设并行传送N位数据所需时间为T,那么串行传送的时间至少为N*T,实际上总是大于N*T。
接收设备发送设备
D2
D1
D0
D3
D7
D6
D5
D4
串行通信的传输方式
•串行通信的传输方式通常有三种:
单向(或单工)方式,只允许数据向一个方向传送;
半双向(或半双工)方式,允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;
全双向(或全双工)方式,允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接受能力。
串行通信中的数据传送方式
•异步串行通信协议
•起始位(0)信号只占一位,用来通知接收设备一个待接收的字符开始到达。
线路上在不传送字符时应保持为1。
接收端不断检测线路的状态,若连续为1以后又测到一个0,就知道发来一个新字符,应马上准备接收。
字符的起始位还被用作同步接收端的时钟,以保证以后的接收能正确进行。
D0--D4)、6位、7位、8位(D0
D0--•起始位后面紧接着是数据位,5位(D0
D7)或9位。
若所传字符为ASCII码,则常取7位。
•奇偶校验(D8)只占一位,若在字符中可规定不用奇偶校验位,则这一位可省去。
也可用这一位(1/0)来表示这一帧中的字符所代表信息的性质(地址/数据等)。
•停止位用来表征字符的结束,它一定是高电位(逻辑1)。
停止位可以是1位、1.5位或2位。
接收端收到停止位后,知道上一字符已传送完毕,同时,也为接收下一个字符做好准备。
只要再接收到0,就是新的字符的起始位。
若停止位以后不是紧接着传送下一个字符,则使线路电平保持为高电平(逻辑1)。
波特率(Baud rate)
•通信线上传送的所有位信号的持续时间都保持一致,由数据传送速度确定。
•波特率,即数据传送速率:每秒钟传送二进制代码的位数,它的单位是b/s (bits per second)。
•假设数据传送速率是120帧/s,而每一帧信息包含的代码位有:1个起始位、8个数据位、1个停止位。
这时,传送的波特率为:
10b/帧×120帧/s=1200b/s
•每一位代码的传送时间Td为波特率的倒数。
Td=1/1200=0.833ms
•异步通信的传送速率在50b/s~19200b/s之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。
串行通信协议类型
•串行通信的基本特征是数据逐位按顺序进行传送。
•根据串行通信的格式及约定(如:同步方式、通信速率、数据块格式、信号电平……等)不同,形成了多种串行通信协议与接口标准。
•常见的有:
–通用串行总线(USB)
–I2C总线
–CAN总线
–SPI总线
485,RS--232C,RS422A标准……等等
RS--485,RS
–RS
本课程介绍通用异步收发器(UART)是异步串行通信口的总称,而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接
口标准和总线标准,它规定了通信接口的电气特性、传输速率、连接特
性和接口的机械特性等内容。
实际上是属于通信网络中的物理层(最底层)的概念,与通信协议没有直接关系。
而通信协议,是属于通信网络
中的数据链路层(上一层)的概念。
串行通信的过程
1、串←→并转换与设备同步
两个通信设备在串行线路上实现通信必须解决2个问题:1)串←→并转换,即把要发送的并行数据串行化,把接收的串行数据并行化;
2)设备同步,即发送设备与接收设备的工作节拍同步,以确保发送数据在接收端被正确读出。
图7-5
图7-6
2)设备同步
•进行串行通信的两台设备必须同步工作才能有效地检测通信线路上的信号变化,从而采样传送数据的脉冲。
•设备同步对通信双方有两个共同要求:
通信双方必须采用统一的编码方法;
通信双方必须能产生相同的传送速率。
•采用统一的编码方法确定了一个字符二进制表示值的位发送顺序和位串长度,当然还包括统一的逻辑电平规定,即电平信号高低与逻辑1和逻辑0的固定对应关系。
•通信双方只有产生相同的传送速率,才能确保设备同步,这就要求发送设备和接收设备采用相同频率的时钟。
发送设备在统一的时钟脉冲上发出数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。
7.2 PIC18FXX2串行口及应用
•PIC18FXX2单片机具有一个串行通信接口,能同时进行串行发送和接收数据。
•既可以配置成全双工的异步通信模式,又可以配里成半双工的同步通信模式。
•在同步通信模式下还可以有主模式或从模式之分,可按实际数据通信的需要灵活应用。
•此模块的异步串行通信模式应用面最为广泛,利用异步串行接口可以方便地实现单片机和PC机的通信,也可以进行多机联网。
•PIC18FXX2的引脚RXD(RC26)是串行数据接收端,引脚TXD(RC25 )是串行数据发送端。
相关寄存器
•为将引脚RC6/TX/CK 和RC7/RX/DT 配置为通用同步/异步收发器,需要:
SPEN 位(RCSTA<7>)必须置位(=1),
TRISC<6> 位必须清零(=0),并且
TRISC<7> 位必须置位(=1)。
16--1 显示发送状态和控制寄存器(TXSTA),•寄存器16
16--2 显示接收状态和控制寄存器(RCSTA)。
•寄存器16
•位7 CSRC :时钟源选择位
异步模式:
此位未用
同步模式:
1= 主控模式(由BRG 产生时钟)
0= 从动模式(由外部时钟源提供时钟信号)•位6 TX9 :9 位发送使能位
1= 选择9 位数据发送
0= 选择8 位数据发送
•位5 TXEN :发送使能位
1= 允许发送
0= 禁止发送
注:在SYNC 模式下,SREN/CREN 位比TXEN 位优先级高。
•位4 SYNC :USART 模式选择位
1= 同步模式
0= 异步模式
•位3 未实现:读作0
•位2 BRGH :高速波特率选择位
异步模式:
1= 高速
0= 低速
同步模式:
在此模式下未使用此位
•位1 TRMT :发送移位寄存器状态位
1=TSR 空
0=TSR 满
•位0 TX9D :发送数据的第9 位
可能是地址/ 数据位或奇偶校验位。
•位7 SPEN :串口使能位
1= 使能串口(把RX/DT 和TX/CK 引脚配置
为串口引脚)
0= 禁止串口
•位6 RX9 :9 位接收使能位
1= 选择9 位接收
0= 选择8 位接收
•位5 SREN :单字节接收使能位
异步模式:未用此位
同步主控模式
1= 允许接收单字节
0= 禁止接收单字节
在接收完成后该位被清零。
同步从动模式:未用此位
•位4 CREN :连续接收使能位
异步模式:
1= 允许接收器
0= 禁止接收器
同步模式:
1= 允许连续接收,直到CREN 使能位被清零(CREN 位比SREN 位优先级高)为止
0= 禁止连续接收
•位3 ADDEN :地址检测使能位
9 位异步模式(RX9=1):
1= 允许地址检测、使能中断及装入接收缓冲器
当RSR<8> 置1 时
0= 禁止地址检测,接收所有字节,第9 位可作
为奇偶校验位
•位2 FERR :帧出错标志位
1= 帧出错(读RCREG 寄存器可更新该位,并
接收下一个有效字节)
0= 无帧错误
•位1 OERR :溢出错误位
1= 有溢出错误(清零CREN 位可将此位清零)
0= 无溢出错误
•位0 RX9D :接收数据的第9 位
此位可作为地址/ 数据位或奇偶校验位,且必须
由用户固件计算得到。
•例如:
•FOSC=16 MHz;目标波特率=9600;BRGH=0;SYNC=0。
•目标波特率= FOSC/(64(X +1)) 。
不同模式下波特率配置表见PIC18F452说明书169页
•任何时候只要对SPBRG做一次写操作。
用以控制波特率发生的内部定时器/计数器就被复位清0,开始产生新设置的波特率。
要特别小心针对SPBRG的重复刷新操作
串行异步发送模式
串行发送口内部结构示意简图
串行异步发送模式设置
• 1. 选择合适的波特率对SPBRG 寄存器进行初始化。
如果需要高速波特率,将BRGH置1。
• 2. 将SYNC 位清零,SPEN 位置1,使能异步串行口。
• 3. 若需要中断,将使能位TXIE 置1。
• 4. 若需要发送9 位数据,将发送位TX9 置1。
可以用作地址/ 数据位。
• 5. 将TXEN 位置1 来使能发送方式,同时将TXIF位置1。
• 6. 若选择发送9 位数据,要先把第9 位装入TX9D位。
•7. 把数据装入TXREG 寄存器(启动发送)。
串行异步接收模式
串行接收口内部结构示意简图
串行异步接收模式设置
•在RC7/RX/DT 引脚上接收数据,并驱动数据恢复电路。
数据恢复电路其实是一个以波特率x16 的速率工作的高速移位寄存器,而主接收串行移位寄存器以波特率或FOSC 工
RS--232 系统中。
作。
此模式通常用于RS
串行异步接收模式设置
• 1. 选择合适的波特率对SPBRG 寄存器进行初始化。
如果需要高速波特率,将BRGH置1。
• 2. 将SYNC 位清零,SPEN 位置1,使能异步串行口。
• 3. 若需要中断,将使能位RCIE 置1。
• 4. 若需要接收9 位数据,将RX9 位置1。
• 5. 将CREN 位置1 来使能接收方式。
• 6. 当接收完成后,将把中断标志位RCIF 置1。
如果此时使能位RCIE 已置1,便产生中断。
•7. 读取RCSTA 寄存器获取第9 位数据(如果已使能),并判断在接收操作中是否发生错误。
•8. 读取RCREG 寄存器来读取接收到的8 位数据。
•9. 如果发生错误,通过将使能位CREN 清零来清除错误。
•10. 如果使用中断,确保将INTCON 寄存器的GIE 位和PEIE 位(INTCON<7:6>)置1。
PIC18FXX2与PC机间通信软件的设计
驱动芯片最方便的是只要通过单一的+5V 近电压,即可得到接近±±10V 的线路电压,满足RS232通信协议的要求。
芯片所需的外围辅助器件只是几个0.1μF 的电容,非常简单。
而且一颗芯片就能实现两路发送和两路接收的电平驱动转换。
RS232通信协议
•用这样的线路驱动芯片最方便的是只要通过单一的+5V电压,
±10V的线路电压,满足RS232通信协议的要即可得到接近±
近
求。
芯片所需的外围辅助器件只是几个0.1μF的电容,非常简单。
而且一颗芯片就能实现两路发送和两路接收的电平
驱动转换。