串行通信接口SCI

上传人:大米 文档编号:569959047 上传时间:2024-08-01 格式:PPT 页数:42 大小:627.50KB
返回 下载 相关 举报
串行通信接口SCI_第1页
第1页 / 共42页
串行通信接口SCI_第2页
第2页 / 共42页
串行通信接口SCI_第3页
第3页 / 共42页
串行通信接口SCI_第4页
第4页 / 共42页
串行通信接口SCI_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《串行通信接口SCI》由会员分享,可在线阅读,更多相关《串行通信接口SCI(42页珍藏版)》请在金锄头文库上搜索。

1、嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践第第7章章 串行通信接口串行通信接口(SCI)主要内容主要内容异步串行通信的根底知识异步串行通信的根底知识电平转换电路与电平转换电路与SCISCI通用编程原理通用编程原理GP32SCIGP32SCI模块存放器模块存放器 串行口初始化与收发编程的根本方串行口初始化与收发编程的根本方法法 串行通信通用函数与测试实例串行通信通用函数与测试实例 串行通信进一步讨论串行通信进一步讨论 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.1异步串行通信的根底知识异步串行通信的根底知识 7.1.1

2、 7.1.1 根本概念根本概念根本概念根本概念异步串行通信的格式异步串行通信的格式异步串行通信的格式异步串行通信的格式 SCISCI通通通通常常常常采采采采用用用用NRZNRZ数数数数据据据据格格格格式式式式,即即即即:standard standard non-return-zero non-return-zero mark/space mark/space data data formatformat,译译译译为为为为:“ “标标标标准准准准不不不不归归归归零零零零传传传传号号号号/ /空空空空号号号号数数数数据据据据格格格格式式式式。“ “不不不不归归归归零零零零的的的的最最最最初初初初

3、含含含含义义义义是是是是:用用用用正正正正、负负负负电电电电平平平平表表表表示示示示二二二二进进进进制制制制值值值值,不不不不使使使使用用用用零零零零电电电电平平平平。“mark/space“mark/space即即即即“ “传传传传号号号号/ /空空空空号号号号分分分分别别别别是是是是表表表表示示示示两两两两种种种种状状状状态态态态的的的的物物物物理理理理名名名名称称称称,逻逻逻逻辑辑辑辑名名名名称称称称记记记记为为为为“1/0“1/0。以以以以下下下下图图图图给给给给出出出出了了了了 8 8位位位位数数数数据据据据、无无无无校校校校验验验验情情情情况的传送格式。况的传送格式。况的传送格式。

4、况的传送格式。第第0位位第第1位位第第2位位第第3位位第第4位位第第5位位第第6位位第第7位位停止位停止位开始位开始位SCI数据格式嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践2 2串行通信的波特率串行通信的波特率串行通信的波特率串行通信的波特率 波特率波特率波特率波特率baud ratebaud rate:每秒内传送的位数。:每秒内传送的位数。:每秒内传送的位数。:每秒内传送的位数。 波特率单位是位波特率单位是位波特率单位是位波特率单位是位/ /秒,记为秒,记为秒,记为秒,记为bpsbps。通常情况下,。通常情况下,。通常情况下,。通常情况下,波特率的单位

5、可以省略。通常使用的波特率有波特率的单位可以省略。通常使用的波特率有波特率的单位可以省略。通常使用的波特率有波特率的单位可以省略。通常使用的波特率有300300、600600、900900、12001200、18001800、24002400、48004800、96009600、1920019200、3840038400。 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践 字符奇偶校验检查字符奇偶校验检查字符奇偶校验检查字符奇偶校验检查character parity checkingcharacter parity checking称为垂直冗余检查称为垂直冗余

6、检查称为垂直冗余检查称为垂直冗余检查 vertical vertical redundancy checkingredundancy checking,VRCVRC,它是每个字符增加一个额外位使字符中,它是每个字符增加一个额外位使字符中,它是每个字符增加一个额外位使字符中,它是每个字符增加一个额外位使字符中“1“1的个的个的个的个数为奇数或偶数。数为奇数或偶数。数为奇数或偶数。数为奇数或偶数。 奇校验:如果字符数据位中奇校验:如果字符数据位中奇校验:如果字符数据位中奇校验:如果字符数据位中“1“1的数目是偶数,校验位应为的数目是偶数,校验位应为的数目是偶数,校验位应为的数目是偶数,校验位应为“

7、1“1,如果,如果,如果,如果“1“1的的的的数目是奇数,校验位应为数目是奇数,校验位应为数目是奇数,校验位应为数目是奇数,校验位应为“0“0。 偶校验:如果字符数据位中偶校验:如果字符数据位中偶校验:如果字符数据位中偶校验:如果字符数据位中“1“1的数目是偶数,那么校验位应为的数目是偶数,那么校验位应为的数目是偶数,那么校验位应为的数目是偶数,那么校验位应为“0“0,如果是奇,如果是奇,如果是奇,如果是奇数那么为数那么为数那么为数那么为“1“1。 3 3奇偶校验奇偶校验奇偶校验奇偶校验嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践 单工单工单工单工Simpl

8、exSimplex:数据传送是单向的,一端为发送端,另一端为接收:数据传送是单向的,一端为发送端,另一端为接收:数据传送是单向的,一端为发送端,另一端为接收:数据传送是单向的,一端为发送端,另一端为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线播送端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线播送端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线播送端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线播送就是单工的。就是单工的。就是单工的。就是单工的。 全双工全双工全双工全双工Full-duplexFull-duplex:数据传送是双向

9、的,且可以同时接收与发送数:数据传送是双向的,且可以同时接收与发送数:数据传送是双向的,且可以同时接收与发送数:数据传送是双向的,且可以同时接收与发送数据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角度看,一根为发送线,另一根为接收线。一般情况下,度看,一根为发送线,另一根为接收线。一般情况下,度看,一根为发送线,另一根为接收线。一般情况下,度看,一根为发送线,另一根为接收线。一般

10、情况下,MCUMCU的异步串行通信的异步串行通信的异步串行通信的异步串行通信接口均是全双工的。接口均是全双工的。接口均是全双工的。接口均是全双工的。 半双工半双工半双工半双工Half-duplexHalf-duplex:数据传送也是双向的,但是在这种传输方式:数据传送也是双向的,但是在这种传输方式:数据传送也是双向的,但是在这种传输方式:数据传送也是双向的,但是在这种传输方式中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送中,除了地线之外,一般只

11、有一根数据线。任何一个时刻,只能由一方发送数据,另一方接收数据,不能同时收发。在数据,另一方接收数据,不能同时收发。在数据,另一方接收数据,不能同时收发。在数据,另一方接收数据,不能同时收发。在freescalefreescale的的的的HC08HC08系列系列系列系列MCUMCU中,中,中,中,监控模式的通信就采用这种方式。监控模式的通信就采用这种方式。监控模式的通信就采用这种方式。监控模式的通信就采用这种方式。 4 4串行通信的传输方式串行通信的传输方式串行通信的传输方式串行通信的传输方式嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践MCUMCU引脚一般输

12、入引脚一般输入引脚一般输入引脚一般输入/ /输出使用输出使用输出使用输出使用TTLTTL电平,而电平,而电平,而电平,而TTLTTL电平的电平的电平的电平的“1“1和和和和“0“0的特征电压分别为的特征电压分别为的特征电压分别为的特征电压分别为2.4V2.4V和和和和0.4V0.4V,适用于板内数据传输。为了,适用于板内数据传输。为了,适用于板内数据传输。为了,适用于板内数据传输。为了使信号传输得更远,美国电子工业协会使信号传输得更远,美国电子工业协会使信号传输得更远,美国电子工业协会使信号传输得更远,美国电子工业协会EIAEIAElectronic Electronic Industry A

13、ssociationIndustry Association 制订了串行物理接口标准制订了串行物理接口标准制订了串行物理接口标准制订了串行物理接口标准RS-232CRS-232C。RS-232CRS-232C采用负逻辑,采用负逻辑,采用负逻辑,采用负逻辑,-3V-3V-15V-15V为逻辑为逻辑为逻辑为逻辑“1“1,+3V+3V+15V+15V为逻辑为逻辑为逻辑为逻辑“0“0。RS-232CRS-232C最大的传输距离是最大的传输距离是最大的传输距离是最大的传输距离是30m30m,通信速率一般,通信速率一般,通信速率一般,通信速率一般低于低于低于低于20Kbps20Kbps。 7.1.2 RS

14、-232C7.1.2 RS-232C总线标准总线标准总线标准总线标准嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.1.2 RS-232C7.1.2 RS-232C总线标准总线标准总线标准总线标准 RS-232 RS-232接口,简称接口,简称接口,简称接口,简称“ “串口,串口,串口,串口,它主要用于连接具有同样接口的室内它主要用于连接具有同样接口的室内它主要用于连接具有同样接口的室内它主要用于连接具有同样接口的室内设备。目前几乎所有计算机上的串行设备。目前几乎所有计算机上的串行设备。目前几乎所有计算机上的串行设备。目前几乎所有计算机上的串行口都是口都是口

15、都是口都是9 9芯接口。右图给出了芯接口。右图给出了芯接口。右图给出了芯接口。右图给出了9 9芯串芯串芯串芯串行接口的排列位置,相应引脚含义见行接口的排列位置,相应引脚含义见行接口的排列位置,相应引脚含义见行接口的排列位置,相应引脚含义见表表表表7-17-1。4 41 12 23 35 56 67 78 89 99 9芯串行接口排列芯串行接口排列表表7-1 97-1 9芯串行接口引脚含义表芯串行接口引脚含义表引脚引脚号号功功 能能引脚引脚号号功功 能能1 12 23 34 45 5接收接收线线信号信号检测检测( (载载波波检检测测DCD)DCD)接收数据线(接收数据线(RXDRXD)发送数据线

16、(发送数据线(TXDTXD)数据数据终终端准端准备备就就绪绪(DTRDTR)信号地(信号地(SGSG)6 67 78 89 9数据通信数据通信设备设备准准备备就就绪绪(DSR)(DSR)请请求求发发送(送(RTSRTS)清除清除发发送送振振铃铃指示指示返回返回嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.2电平转换电路与电平转换电路与SCI通用编程原理通用编程原理 7.2.1 SCI7.2.1 SCI的外围硬件电路的外围硬件电路的外围硬件电路的外围硬件电路 具有具有具有具有SCISCI接口的接口的接口的接口的MCUMCU,一般具有发送引脚,一般具有发送引脚

17、,一般具有发送引脚,一般具有发送引脚(TxD)(TxD)与接收引脚与接收引脚与接收引脚与接收引脚(RxD)(RxD),不同公司或不同,不同公司或不同,不同公司或不同,不同公司或不同系列的系列的系列的系列的MCUMCU,使用的引脚缩写名可能不一,使用的引脚缩写名可能不一,使用的引脚缩写名可能不一,使用的引脚缩写名可能不一致,但含义相同。致,但含义相同。致,但含义相同。致,但含义相同。SCISCI的外围硬件电路,的外围硬件电路,的外围硬件电路,的外围硬件电路,主要目的是将主要目的是将主要目的是将主要目的是将MCUMCU的发送引脚的发送引脚的发送引脚的发送引脚TxDTxD与接收与接收与接收与接收引脚

18、引脚引脚引脚RxDRxD的的的的TTLTTL电平,通过电平,通过电平,通过电平,通过RS-232RS-232电平电平电平电平转换芯片转换为转换芯片转换为转换芯片转换为转换芯片转换为RS-232RS-232电平。以下图给电平。以下图给电平。以下图给电平。以下图给出一个根本出一个根本出一个根本出一个根本SCISCI电平转换电路。电平转换电路。电平转换电路。电平转换电路。MAX232CPE16 15 14 13 12 11 10 916 15 14 13 12 11 10 91 2 3 4 5 6 7 81 2 3 4 5 6 7 851232232电平电平OUT IN+5V+5VTTLTTL电平电

19、平OUT INTTLTTL电平电平转为转为232232电平电平14嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.2.2 SCI7.2.2 SCI的根本编程原理的根本编程原理的根本编程原理的根本编程原理SCI编程模型SCI 数据寄存器数据寄存器MCU MCU 的的 内内 部部 总总 线线 (Internal BusInternal Bus)接收移位寄存器发送移位寄存器接收引脚接收引脚RxD发送引脚发送引脚TxDSCI 控制寄存器控制寄存器SCI状态寄存器状态寄存器SCI波特率寄存器波特率寄存器返回返回嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实

20、践嵌入式技术基础与实践7.3 GP32 SCI模块存放器模块存放器 1.1.SCISCI的存放器的存放器的存放器的存放器2.2. MC68HC908GP32 MC68HC908GP32的的的的SCISCI有有有有7 7个存放器,地址为个存放器,地址为个存放器,地址为个存放器,地址为$0013$0013$0019 $0019 。3.3.1 1SCISCI波特率存放器波特率存放器波特率存放器波特率存放器(SCI Baud Rate Register(SCI Baud Rate Register,SCBR)SCBR)4.4. SCBR SCBR的作用是设置串行通信的波特率的作用是设置串行通信的波特率

21、的作用是设置串行通信的波特率的作用是设置串行通信的波特率 ,其地址,其地址,其地址,其地址是是是是$0019$0019。5.5. D7 D7、D6D6、D3D3:未定义;:未定义;:未定义;:未定义;6.6. D5 D5D4 SCPD4 SCP:波特率预分频位:波特率预分频位:波特率预分频位:波特率预分频位(SCI Baud (SCI Baud Rate Prescaler Bits)Rate Prescaler Bits)7.7. SCP1 SCP1、SCP0=00 01 10 SCP0=00 01 10 11118.8. PD= 1 3 4 PD= 1 3 4 1313数据位数据位 D7

22、D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0定义定义 x x SCP1 SCP0 x SCR2 SCR1 x x SCP1 SCP0 x SCR2 SCR1 SCR0SCR0复位复位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践 D2 D2D0 SCRD0 SCR:波特率选择位:波特率选择位:波特率选择位:波特率选择位SCI Baud Rate Select BitsSCI Baud Rate Select Bits,定义,定义,定义,定义波特率另一分频

23、值,记为:波特率另一分频值,记为:波特率另一分频值,记为:波特率另一分频值,记为:BDBD,定义如下,定义如下,定义如下,定义如下: : SCR2 SCR2、1 1、0 =000 001 010 011 100 101 110 111 0 =000 001 010 011 100 101 110 111 BD = 1 2 4 8 16 32 64 128 BD = 1 2 4 8 16 32 64 128 设设设设fSCIfSCI为串行通信时钟源频率,为串行通信时钟源频率,为串行通信时钟源频率,为串行通信时钟源频率,fSCI= fBUSfSCI= fBUS或或或或CGMXCLKCGMXCLK,

24、取决于,取决于,取决于,取决于CONFIG2CONFIG2的的的的SCIBDSRCSCIBDSRC,一般设定,一般设定,一般设定,一般设定SCIBDSRC=1SCIBDSRC=1,SCISCI用内部总线时钟,那用内部总线时钟,那用内部总线时钟,那用内部总线时钟,那么么么么fSCI= fBUSfSCI= fBUS,那么波特率的定义公式为:,那么波特率的定义公式为:,那么波特率的定义公式为:,那么波特率的定义公式为: Bt BtfBUS /fBUS /64PDBD64PDBD1 1SCISCI波特率存放器波特率存放器波特率存放器波特率存放器(SCI Baud Rate Register(SCI B

25、aud Rate Register,SCBR)SCBR)嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践2 2 SCI SCI控制存放器控制存放器控制存放器控制存放器1(SCI Control Register 11(SCI Control Register 1,SCC1)SCC1)SCC1SCC1的地址是:的地址是:的地址是:的地址是:$0013 ,$0013 ,定义为:定义为:定义为:定义为: D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0复位复位

26、复位复位 LOOPS ENSCI TXINV M WAKE ILTY PEN PTY LOOPS ENSCI TXINV M WAKE ILTY PEN PTY定义定义定义定义数据位数据位数据位数据位循环模式循环模式选择位选择位SCI允许位允许位奇偶校验奇偶校验允许位允许位空闲线空闲线类型位类型位唤醒条件位唤醒条件位模式模式-字符字符长度选择位长度选择位发送反转发送反转标志位标志位奇偶校验类奇偶校验类型选择位型选择位嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践3 3 SCI SCI控制存放器控制存放器控制存放器控制存放器2(SCI Control Regis

27、ter 22(SCI Control Register 2,SCC2)SCC2)SCC2SCC2的地址是:的地址是:的地址是:的地址是:$0014 ,$0014 ,定义为:定义为:定义为:定义为:发送中断发送中断允许位允许位 发送完成中发送完成中断允许位断允许位 接收器唤接收器唤醒位醒位发送器允许位发送器允许位 接收中断接收中断允许位允许位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0复位复位复位复位SCTIE TCIE SCRIE ILIE TE RE RWU SBKSCTIE TCIE SCRIE ILIE TE RE RWU SBK定义定义定义定义 D7 D6 D5 D

28、4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0数据位数据位数据位数据位空闲线中空闲线中断允许位断允许位接收器接收器允许位允许位 发送终止位发送终止位 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践4 4 SCI SCI控制存放器控制存放器控制存放器控制存放器3(SCI Control Register 33(SCI Control Register 3,SCC3)SCC3)SCC3SCC3的地址是:的地址是:的地址是:的地址是:$0015 ,$0015 ,定义为:定义为:定义为:定义为: 0 0 0 0 0 0 0 0 0 0 0

29、0 0 0 0 0复位复位复位复位R8 T8 DMARE DMATE ORIE NEIE FEIE PEIE R8 T8 DMARE DMATE ORIE NEIE FEIE PEIE 定义定义定义定义 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0数据位数据位数据位数据位接收位接收位8 发送位发送位8 接收器帧接收器帧错误中断错误中断允许位允许位 接收器噪接收器噪声错误中声错误中断允许位断允许位 接收器溢出接收器溢出中断允许位中断允许位 DMA发送发送允许位允许位 DMA接收接收允许位允许位 接收器奇偶错接收器奇偶错误中断允许位误中断允许位 嵌

30、入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践5 5 SCI SCI状态存放器状态存放器状态存放器状态存放器1(SCI Status Register 11(SCI Status Register 1,SCS1 )SCS1 )SCS1SCS1的地址是:的地址是:的地址是:的地址是:$0016 ,$0016 ,定义为:定义为:定义为:定义为: 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0复位复位复位复位 SCTE TC SCRF IDLE OR NF FE PE SCTE TC SCRF IDLE OR NF FE PE定义(只读)定义(只读)定

31、义(只读)定义(只读) D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0数据位数据位数据位数据位接收器奇接收器奇偶错误标偶错误标志位志位 发送缓冲区发送缓冲区空标志位空标志位 接收器帧错接收器帧错误标志位误标志位 接收器噪接收器噪声标志位声标志位 接收器溢接收器溢出标志位出标志位 接收器满接收器满标志位标志位 发送完成发送完成标志位标志位 接收器空接收器空闲标志位闲标志位 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践6 6 SCI SCI状态存放器状态存放器状态存放器状态存放器2(SCI Status Regis

32、ter 22(SCI Status Register 2,SCS2 )SCS2 )SCS2SCS2的地址是:的地址是:的地址是:的地址是:$0017 ,$0017 ,定义为:定义为:定义为:定义为: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0复位复位复位复位 BKF RPF BKF RPF定义(只读)定义(只读)定义(只读)定义(只读) D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0数据位数据位数据位数据位未定义未定义 终止码标志位终止码标志位 接收进行接收进行标志位标志位 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基

33、础与实践嵌入式技术基础与实践7 7 SCI SCI数据存放器数据存放器数据存放器数据存放器(SCI Data Register (SCI Data Register ,SCDR )SCDR ) SCDR SCDR为为为为SCISCI系统最常用的存放器,它的地址是:系统最常用的存放器,它的地址是:系统最常用的存放器,它的地址是:系统最常用的存放器,它的地址是:$0018$0018。写入时,为要发送的写入时,为要发送的写入时,为要发送的写入时,为要发送的8 8位数据,记为:位数据,记为:位数据,记为:位数据,记为:T7T7T0T0;读出时,为接收;读出时,为接收;读出时,为接收;读出时,为接收的的

34、的的8 8位数据,记为:位数据,记为:位数据,记为:位数据,记为:R7R7R0R0。不受复位影响。不受复位影响。不受复位影响。不受复位影响。嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践1 1SCISCI初始化初始化初始化初始化 对对对对SCISCI进行初始化,最少由以下三步构成:进行初始化,最少由以下三步构成:进行初始化,最少由以下三步构成:进行初始化,最少由以下三步构成: 第一步:定义波特率。第一步:定义波特率。第一步:定义波特率。第一步:定义波特率。 LDA #%00000010 LDA #%00000010 STA SCBR ; STA SCBR ;总

35、线频率总线频率总线频率总线频率fBUSfBUS2.4576MHz2.4576MHz,定义波特率,定义波特率,定义波特率,定义波特率Bt=9600Bt=9600 第二步:写控制字到第二步:写控制字到第二步:写控制字到第二步:写控制字到SCISCI控制存放器控制存放器控制存放器控制存放器1 1SCC1SCC1。 LDA #%01000000 LDA #%01000000 STA SCC1 ; STA SCC1 ;设置允许设置允许设置允许设置允许SCISCI,正常码输,正常码输,正常码输,正常码输出、出、出、出、8 8位数据、无校验位数据、无校验位数据、无校验位数据、无校验 第三步:写控制字到第三步

36、:写控制字到第三步:写控制字到第三步:写控制字到SCISCI控制存放器控制存放器控制存放器控制存放器2 2SCC2SCC2。 LDA #%00001100 LDA #%00001100 STA SCC2 ; STA SCC2 ;设置允许发送、允许接收,设置允许发送、允许接收,设置允许发送、允许接收,设置允许发送、允许接收,查询方式收发查询方式收发查询方式收发查询方式收发7.4 串行口初始化与收发编程的根本方串行口初始化与收发编程的根本方法法嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践2 2发送一个数据与接收一个数据发送一个数据与接收一个数据发送一个数据与接收

37、一个数据发送一个数据与接收一个数据 发送数据是通过判断状态存放器发送数据是通过判断状态存放器发送数据是通过判断状态存放器发送数据是通过判断状态存放器SCS1SCS1的第的第的第的第7 7位位位位SCTESCTE进行的,而进行的,而进行的,而进行的,而接收数据是通过判断状态存放器接收数据是通过判断状态存放器接收数据是通过判断状态存放器接收数据是通过判断状态存放器SCS1SCS1的第的第的第的第5 5位位位位SCRFSCRF进行的。不管是进行的。不管是进行的。不管是进行的。不管是发送还是接收,均使用发送还是接收,均使用发送还是接收,均使用发送还是接收,均使用SCISCI数据存放器数据存放器数据存放

38、器数据存放器SCDRSCDR。发送时,将要发送的数据。发送时,将要发送的数据。发送时,将要发送的数据。发送时,将要发送的数据送入送入送入送入SCDRSCDR即可,接收时,从即可,接收时,从即可,接收时,从即可,接收时,从SCDRSCDR中取出的即是收到的数据。中取出的即是收到的数据。中取出的即是收到的数据。中取出的即是收到的数据。 ; ;串行发送串行发送串行发送串行发送A A中的数中的数中的数中的数 BRCLR 7,SCS1,* ;SCS1.7=0? BRCLR 7,SCS1,* ;SCS1.7=0? 为为为为0 0那么等待那么等待那么等待那么等待 STA SCDR ;SCS1.7=1, ST

39、A SCDR ;SCS1.7=1,可以发送数据可以发送数据可以发送数据可以发送数据 ; ;查询方式接收一个串行数据,接收的数据放入存放器查询方式接收一个串行数据,接收的数据放入存放器查询方式接收一个串行数据,接收的数据放入存放器查询方式接收一个串行数据,接收的数据放入存放器A A中中中中 BRCLR 5,SCS1,* ;SCS1.5=0? BRCLR 5,SCS1,* ;SCS1.5=0? 为为为为0 0那么等待那么等待那么等待那么等待 LDA SCDR ;SCS1.5=1, LDA SCDR ;SCS1.5=1,可以取出数据可以取出数据可以取出数据可以取出数据返回返回嵌入式技术基础与实践嵌入

40、式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.5 串行通信通用函数与测试实例串行通信通用函数与测试实例7.5.1 7.5.1 串行通信子程序串行通信子程序串行通信子程序串行通信子程序串行通信头文件串行通信头文件串行通信头文件串行通信头文件 SCI.h SCI.h 串行通信驱动文件串行通信驱动文件串行通信驱动文件串行通信驱动文件 SCI.c SCI.c 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行通信头文件串行通信头文件串行通信头文件串行通信头文件 SCI.h SCI.h /SCI.h/SCI.h串行通信头文件串行通信头文件- - #incl

41、ude GP32C.h /GP32 MCU#include GP32C.h /GP32 MCU映像寄存器名定义映像寄存器名定义#include Type.h /#include Type.h /类型别名定义类型别名定义#define ReSendStatusR SCS1 /SCI#define ReSendStatusR SCS1 /SCI状态寄存器状态寄存器#define ReTestBit 5 /#define ReTestBit 5 /接收缓冲区满标志位接收缓冲区满标志位#define SendTestBit 7 /#define SendTestBit 7 /发送缓冲区空标志位发送缓冲

42、区空标志位#define ReSendDataR SCDR /#define ReSendDataR SCDR /数据寄存器数据寄存器/串行通信函数声明串行通信函数声明void SCIinit(void); /void SCIinit(void); /串行口初始化串行口初始化void SCIsend1(INT8U o); /void SCIsend1(INT8U o); /发送发送1 1字节字节void SCIsendN(INT8U n, INT8U ch); /void SCIsendN(INT8U n, INT8U ch); /发送发送n n字节字节INT8U SCIre1(INT8U *

43、p); /INT8U SCIre1(INT8U *p); /接收接收1 1字节字节INT8U SCIreN(INT8U n, INT8U ch); /INT8U SCIreN(INT8U n, INT8U ch); /接收接收n n字节字节_嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行通信驱动文件串行通信驱动文件串行通信驱动文件串行通信驱动文件 SCI.c SCI.c串串行行通通信信驱驱动动文文件件包包括括SCI初初始始化化、接接收收1字字节节、发发送送1字字节节、接接收收n字字节节和和发发送送n字节函数。读者可以直接使用这些函数进行字节函数。读者可以直

44、接使用这些函数进行MCU的串行通信编程。的串行通信编程。/SCI.c/SCI.c串行通信串行通信-*-*/本文件包含本文件包含: *: */ (1)SCIinit: / (1)SCIinit: 串行口初始化串行口初始化 * */ (2)SCIsend1:/ (2)SCIsend1:串行发送串行发送1 1个字节个字节 * */ (3)SCIsendN:/ (3)SCIsendN:串行发送串行发送n n字节字节 * */ (4)SCIre1: / (4)SCIre1: 串行接收串行接收1 1字节字节 * */ (5)SCIreN: / (5)SCIreN: 串行接收串行接收n n字节字节 * */

45、硬件连接硬件连接: *: */ MCU/ MCU的串口与的串口与PCPC方的串口相连方的串口相连 * */-*/-*嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/头文件头文件#include SCI.h#include SCI.h/SCIinit:/SCIinit:串行口初始化串行口初始化-*-*/功能功能: :对串行口进行初始化对串行口进行初始化, ,默认为允许默认为允许SCI,SCI,正常码输出正常码输出,8,8位数位数 * * 据据, ,无校验无校验, *, */允许发送器允许发送器, ,允许接收器允许接收器. .查询方式收发查询方式收发, ,波特率为

46、波特率为9600(9600(设设fBUS *fBUS * = 2.4576MHz) * = 2.4576MHz) */参数参数: :无无 * */返回返回: :无无 * */说明说明: :该函数与具体的芯片型号该函数与具体的芯片型号(MC68HC908GP32)(MC68HC908GP32)有关有关 * */-*/-*void SCIinit(void)void SCIinit(void) /1. /1.总线频率总线频率fBUS = 2.4576MHz,fBUS = 2.4576MHz,定义波特率定义波特率Bt = 9600Bt = 9600 SCBR = 0b00000010; SCBR =

47、 0b00000010; /2. /2.设置允许设置允许SCI,SCI,正常码输出正常码输出,8,8位数据位数据, ,无校验无校验 SCC1 = 0b01000000; SCC1 = 0b01000000; /3. /3.设置允许发送设置允许发送, ,允许接收允许接收, ,查询方式收发查询方式收发 SCC2 = 0b00001100; SCC2 = 0b00001100; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/SCIsend1:/SCIsend1:串行发送串行发送1 1个字节个字节-*-*/功能功能: :串行发送串行发送1 1个字节个字节 * */参

48、数参数: :要发送的数据要发送的数据 * */返回返回: :无无 * */-*/-*void SCIsend1(INT8U o)void SCIsend1(INT8U o) / /判断判断ReStatusRReStatusR的第的第SendTestBitSendTestBit位是否为位是否为1,1,是是1 1可以发送可以发送 while (1) while (1) if (ReSendStatusR & (1SendTestBit) != 0) if (ReSendStatusR & (1SendTestBit) != 0) ReSendDataR = o; ReSendDataR = o;

49、break; break; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/SCIsendN:/SCIsendN:串行发送串行发送N N个字节个字节-*-*/功能功能: :发送数组中的发送数组中的N N个字节数据个字节数据 * */参数参数: :待发送数据的字节数及存放这些数据的数组首地址待发送数据的字节数及存放这些数据的数组首地址 * */返回返回: :无无 * */内部调用函数内部调用函数:SCIsend1 *:SCIsend1 */-*/-*void SCIsendN(INT8U n, INT8U ch)void SCIsendN(INT8U n, IN

50、T8U ch) int i; int i; for(i=0; in; i+) for(i=0; in; i+) SCIsend1(chi); SCIsend1(chi); 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/SCIre1:/SCIre1:串行收一个字节数据串行收一个字节数据-*-*/功能功能: :从串行口接收从串行口接收1 1个字节的数据个字节的数据 * */参数参数: :标志指针标志指针p *p */返回返回: :接收到的数据假设接收失败,返回接收到的数据假设接收失败,返回0xff0xff * */说明说明: :参数参数*p*p带回接收标志带回接

51、收标志.*p = 0,.*p = 0,收到数据收到数据;*p = 1,;*p = 1,未收到数据未收到数据 * */-*/-*INT8U SCIre1(INT8U *p)INT8U SCIre1(INT8U *p) INT16U k; INT16U k; INT8U i; INT8U i; /ReStatusR /ReStatusR第第ReTestBitReTestBit位为位为1 1表示可接收数据表示可接收数据 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践for(k=0; k 0xfbbb; k+)for(k=0; k 0xfbbb; k+) if (Re

52、SendStatusR & (1ReTestBit) != 0) if (ReSendStatusR & (1= 0xfbbb) if (k = 0xfbbb) i = 0xff; i = 0xff; *p = 0x01; *p = 0x01; return i; return i; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/SCIreN:HC08/SCIreN:HC08串行接收串行接收N N个字节个字节-*-*/功能功能: :接收接收N N个字节数据个字节数据, ,并存放在并存放在chch数组中数组中 * */参数参数: :待接收的数据字节数及其存放的

53、数组首地址待接收的数据字节数及其存放的数组首地址 * */返回返回: :接收标志接收标志 = 0 = 0 收到数据收到数据, = 1 , = 1 未收到数据未收到数据 * */内部调用函数内部调用函数:SCIre1 *:SCIre1 */-*/-*INT8U SCIreN(INT8U n, INT8U ch)INT8U SCIreN(INT8U n, INT8U ch) int m; int m; INT8U fp; INT8U fp; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践m = 0;m = 0; while (m n) while (m n) ch

54、m = SCIre1(&fp); chm = SCIre1(&fp); if (fp = 1) if (fp = 1) return 1; return 1; m+; m+; return 0; return 0; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践1 1查询方式工程查询方式工程查询方式工程查询方式工程(08C)(08C)文件列表文件列表文件列表文件列表2 2查询方式查询方式查询方式查询方式08C08C语言主程序语言主程序语言主程序语言主程序3 3中断方式中断方式中断方式中断方式MCUMCU方主程序方主程序方主程序方主程序 查询方式工程文件查询方式

55、工程文件查询方式工程文件查询方式工程文件嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践中断方式中断方式中断方式中断方式0808C C工程文件列表工程文件列表工程文件列表工程文件列表中断方式中断方式中断方式中断方式0808C C语言主程序语言主程序语言主程序语言主程序main.cmain.c 串行中断子函数声明串行中断子函数声明串行中断子函数声明串行中断子函数声明EnDisIntEnDisInt.h .h 串行中断处理函数串行中断处理函数串行中断处理函数串行中断处理函数 串行中断方式矢量表文件串行中断方式矢量表文件串行中断方式矢量表文件串行中断方式矢量表文件7.

56、5.3 中断方式工程文件中断方式工程文件返回返回嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践中断方式中断方式08C工程文件列表工程文件列表表表7-5 中断方式中断方式08C测试工程文件测试工程文件工程文件名工程文件名SCI_INT.prj所在路径所在路径MC08Ex2007GP32GP32CC03_串行通信中断方式串行通信中断方式文件类型文件类型文件名文件名功能简述功能简述讲解章节讲解章节头文件头文件GP32C.h芯片头文件芯片头文件08C工程文件组织工程文件组织5.3Includes.h总头文件总头文件08C工程文件组织工程文件组织5.3EnDisInt.

57、h开放或禁止开放或禁止MCU模块模块中断中断08C工程文件组织工程文件组织5.3SCI.h串行通信头文件串行通信头文件本章本章Type.h数据类型头文件数据类型头文件08C工程文件组织工程文件组织5.3C语言语言子函数文件子函数文件MCUinit.c芯片系统初始化函数芯片系统初始化函数定义定义初始化及初始化及PLL编程实例编程实例14.2.5SCI.cCI收发子函数定义收发子函数定义本章本章Vectors.c中断处理及中断向量中断处理及中断向量表表08C工程文件组织工程文件组织5.3C语言主函数语言主函数Main.c主函数主函数本章本章嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实

58、践嵌入式技术基础与实践中断方式中断方式08C语言主程序语言主程序main.c/-*/-*/工工 程程 名名:SCI_Int.prj *:SCI_Int.prj */硬件连接硬件连接: *: */ (1)MCU/ (1)MCU的串口与的串口与PCPC方的串口相连方的串口相连 * */程序描述程序描述: :利用中断方式把收到的数据发送回去利用中断方式把收到的数据发送回去 * */目目 的的: :初步掌握利用中断方式进行串行通信的基本知识初步掌握利用中断方式进行串行通信的基本知识 * */-/-清华清华20072007版嵌入式技术基础与实践实例版嵌入式技术基础与实践实例-*-*/总头文件总头文件#i

59、nclude Includes.h#include Includes.h/主函数主函数void main()void main() DisableMCUint(); / DisableMCUint(); /禁止总中断禁止总中断 /1. /1. 芯片初始化芯片初始化 MCUinit(); MCUinit(); /2. /2. 模块初始化模块初始化 SCIinit(); /(1) SCIinit(); /(1) 串口初始化串口初始化 /3. /3. 开放各模块中断开放各模块中断 EnableSCIreInt(); /(1) EnableSCIreInt(); /(1)开放开放SCISCI接收中断接

60、收中断 /4. /4. 开放总中断开放总中断 EnableMCUint(); EnableMCUint(); / /主循环主循环 while (1) while (1) 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行中断子函数声明串行中断子函数声明EnDisInt.h n n在在在在该该该该头头头头文文文文件件件件中中中中对对对对开开开开关关关关总总总总中中中中断断断断进进进进行行行行了了了了宏宏宏宏定定定定义义义义,并并并并且且且且其其其其他他他他各各各各个个个个模模模模块块块块的的的的中中中中断断断断设设设设置置置置函函函函数数数数在在在在此此此此进进

61、进进行声明。行声明。行声明。行声明。/EnDisInt.h/EnDisInt.h开开放放或或禁禁止止MCUMCU各各模模块块中中断断头头文文件件-#include GP32C.h /GP32 MCU#include GP32C.h /GP32 MCU映像寄存器名定义映像寄存器名定义/开放或禁止中断宏定义开放或禁止中断宏定义#define EnableMCUint() asm(CLI) /#define EnableMCUint() asm(CLI) /开放总中断开放总中断#define DisableMCUint() asm(SEI) /#define DisableMCUint() asm(

62、SEI) /禁止总中断禁止总中断#define #define EnableSCIreInt() EnableSCIreInt() SCC2 SCC2 |= |= (1 (1 5) 5) /令令SCC2.5=1,SCC2.5=1,开开放放SCISCI接收中断接收中断#define #define DisableSCIreInt() DisableSCIreInt() SCC2 SCC2 &= &= (1 (1 5) 5) /令令SCC2.5=0,SCC2.5=0,禁禁止止SCISCI接收中断接收中断嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行中断处理函数

63、串行中断处理函数/Vectors08.c/Vectors08.c中断处理函数与中断向量表中断处理函数与中断向量表-*-*/功能功能: *: */ (1)/ (1)定义中断处理子程序定义中断处理子程序 * */ (2)/ (2)放置中断向量表放置中断向量表 * */本文件包含本文件包含: : / (1)SCI/ (1)SCI接收中断处理函数接收中断处理函数 * */ (2)/ (2)未定义的中断处理函数未定义的中断处理函数 * */说明说明: :该文件与芯片具体型号有关该文件与芯片具体型号有关 * */ (1)/ (1)芯片型号芯片型号MC68HC908GP32 *MC68HC908GP32 *

64、/- */- *#include Type.h /#include Type.h /类型别名定义类型别名定义#include EnDisInt.h /#include EnDisInt.h /开放或禁止开放或禁止MCUMCU各模块中断的宏定义各模块中断的宏定义#include SCI.h /#include SCI.h /该头文件包含串行通信函数声明该头文件包含串行通信函数声明/isrSCIre:/isrSCIre:接收中断处理函数接收中断处理函数- -*- -*/功能功能: :接收接收1 1个字节数据个字节数据, , 发送接到的数据发送接到的数据 * */参数参数: :无无 * */返回返回

65、: :无无 * */内部调用函数内部调用函数:SCIreN, SCIsendN *:SCIreN, SCIsendN */-*/-*嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践#pragmainterrupt_handlerisrSCIrevoidisrSCIre(void)INT8Uf;/标志是否接受到数据标志是否接受到数据INT8USerialBuff1;/存放接收数据的数组存放接收数据的数组DisableMCUint();/禁止总中断禁止总中断/接收接收1个字节的数据个字节的数据f=SCIreN(1,SerialBuff);/假设收到数据假设收到数据,

66、那么发送接到的数据那么发送接到的数据if(f=0)SCIsendN(1,SerialBuff);EnableMCUint();/开放总中断开放总中断/此处为用户中断处理函数的存放处此处为用户中断处理函数的存放处嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/未定义的中断处理函数未定义的中断处理函数,本函数不能删除本函数不能删除#pragmainterrupt_handlerisrDummyvoidisrDummy(void)/中断矢量表中断矢量表,需定义中断函数需定义中断函数,可修改下表中的相应工程可修改下表中的相应工程/(interruptservicero

67、utine,isr中断处理程序中断处理程序)#pragmaabs_address:0xffdc/中断向量表起始地址中断向量表起始地址void(*const_vectab)(void)=/省略其他未使用的中断向量定义省略其他未使用的中断向量定义isrSCIre,/SCI接收中断接收中断/省略其他未使用的中断向量定义省略其他未使用的中断向量定义;#pragmaend_abs_address嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行中断方式矢量表文件串行中断方式矢量表文件n nHC08HC08的的的的中中中中断断断断向向向向量量量量表表表表的的的的详详细细说

68、说明明明明在在在在前前前前面面面面章章章章节节已已已已经经介介介介绍绍。在在在在使使使使用用用用中中中中断断断断方方方方式式式式时时,只只只只要要要要将将将将中中中中断断断断向向向向量量量量表表表表中中中中串串串串行行行行接接接接收收收收中中中中断断断断项项的的的的isrDummyisrDummy该该为为中中中中断断断断处处理理理理函函函函数数数数的的的的函函函函数名数名数名数名isrSCIReisrSCIRe即可,函数内容如上面所描述的。即可,函数内容如上面所描述的。即可,函数内容如上面所描述的。即可,函数内容如上面所描述的。n n本本本本节节仅仅讲讲述述述述了了了了串串串串行行行行通通通通

69、信信信信的的的的08C08C编编程程程程实实例例例例,用用用用汇汇编编编编程程程程的的的的思思思思想想想想与与与与之之之之根根根根本本本本类类似似似似,读读者者者者可可可可以以以以参参参参见见教教教教学学学学资资料料料料的的的的“MC08Ex2007GP32GP32SC02_“MC08Ex2007GP32GP32SC02_串串串串行行行行通通通通信信信信查查询询方方方方式式式式和和和和“MC08Ex2007GP32GP32SC03_“MC08Ex2007GP32GP32SC03_串行通信中断方式下的串行通信中断方式下的串行通信中断方式下的串行通信中断方式下的汇编汇编工程文件。工程文件。工程文件

70、。工程文件。嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.5.4 串口调试器串口调试器(SSCOM V3.2) 串口调试工具比较多,串口调试工具比较多,串口调试工具比较多,串口调试工具比较多,SSCOMSSCOM是其中比较出色的一款软件是其中比较出色的一款软件是其中比较出色的一款软件是其中比较出色的一款软件 。以下图是。以下图是。以下图是。以下图是该软件的一个界面。该软件的一个界面。该软件的一个界面。该软件的一个界面。 读者可以从网址读者可以从网址读者可以从网址读者可以从网址 download/sscom.rar download/sscom.rar 中下

71、载中下载中下载中下载 。嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.6 串行通信进一步讨论串行通信进一步讨论7.6.1 7.6.1 唤醒功能唤醒功能唤醒功能唤醒功能唤醒:一旦接收器进入睡眠,要响应对它寻址的信息需要唤醒:一旦接收器进入睡眠,要响应对它寻址的信息需要唤醒:一旦接收器进入睡眠,要响应对它寻址的信息需要唤醒:一旦接收器进入睡眠,要响应对它寻址的信息需要一个过程。一个过程。一个过程。一个过程。 空闲线唤醒:空闲线唤醒:空闲线唤醒:空闲线唤醒:SCISCI系统使用空闲线唤醒,就需要建立一个系统使用空闲线唤醒,就需要建立一个系统使用空闲线唤醒,就需要

72、建立一个系统使用空闲线唤醒,就需要建立一个协议。协议。协议。协议。 地址标志唤醒:最高位地址标志唤醒:最高位地址标志唤醒:最高位地址标志唤醒:最高位(MSB)(MSB)为为为为1 1的一个字符会唤醒所有使的一个字符会唤醒所有使的一个字符会唤醒所有使的一个字符会唤醒所有使能地址标志唤醒的接收器。能地址标志唤醒的接收器。能地址标志唤醒的接收器。能地址标志唤醒的接收器。 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.6.2 7.6.2 协议和控制流问题协议和控制流问题协议和控制流问题协议和控制流问题n n从本质上来说,协议是建立连接和传输信息的一套标准。流从本质

73、上来说,协议是建立连接和传输信息的一套标准。流从本质上来说,协议是建立连接和传输信息的一套标准。流从本质上来说,协议是建立连接和传输信息的一套标准。流控制指的是停止数据传输和重新开始数据传输的方法。控制指的是停止数据传输和重新开始数据传输的方法。控制指的是停止数据传输和重新开始数据传输的方法。控制指的是停止数据传输和重新开始数据传输的方法。n n应答应答应答应答/ /不应答不应答不应答不应答(Acknowlege/Not Acknowlege(Acknowlege/Not Acknowlege,ACK/NAK)ACK/NAK)流控制流控制流控制流控制 某些协议某些协议某些协议某些协议( (如如

74、如如KermitKermit和和和和Bisynch)Bisynch)使用一个发送者,使用一个发送者,使用一个发送者,使用一个发送者,后者在发送下一组数据前,需要等待接收者对前一组数据的后者在发送下一组数据前,需要等待接收者对前一组数据的后者在发送下一组数据前,需要等待接收者对前一组数据的后者在发送下一组数据前,需要等待接收者对前一组数据的应答。在一组数据发送后,接收者需要检测数据的有效性。应答。在一组数据发送后,接收者需要检测数据的有效性。应答。在一组数据发送后,接收者需要检测数据的有效性。应答。在一组数据发送后,接收者需要检测数据的有效性。n nXON/XOFFXON/XOFF协议。协议。协

75、议。协议。嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.6.3 7.6.3 用普通用普通用普通用普通I/OI/O口模拟口模拟口模拟口模拟SCISCI接收数据接收数据接收数据接收数据 在实际应用场合中,可能需要多个串行数据通信方式,通常在实际应用场合中,可能需要多个串行数据通信方式,通常在实际应用场合中,可能需要多个串行数据通信方式,通常在实际应用场合中,可能需要多个串行数据通信方式,通常MCUMCU中只有中只有中只有中只有1212个个个个SCISCI模块,通过专用芯片扩展可以实现多模块,通过专用芯片扩展可以实现多模块,通过专用芯片扩展可以实现多模块,通过专用芯片扩展可以实现多串口的通讯,但这样会使系统复杂,降低可靠性。此时可以串口的通讯,但这样会使系统复杂,降低可靠性。此时可以串口的通讯,但这样会使系统复杂,降低可靠性。此时可以串口的通讯,但这样会使系统复杂,降低可靠性。此时可以用普通用普通用普通用普通I/OI/O口模拟实现口模拟实现口模拟实现口模拟实现SCISCI功能。功能。功能。功能。 硬件条件硬件条件硬件条件硬件条件 算法描述算法描述算法描述算法描述 发送一字节子程序发送一字节子程序发送一字节子程序发送一字节子程序 接收一字节子程序接收一字节子程序接收一字节子程序接收一字节子程序

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 模板/表格 > 财务表格

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号