串行通信接口SCI

上传人:人*** 文档编号:586738433 上传时间:2024-09-05 格式:PPT 页数:42 大小:778.53KB
返回 下载 相关 举报
串行通信接口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)主要内容主要内容n n异步串行通信的基础知识异步串行通信的基础知识n n电平转换电路与电平转换电路与SCISCI通用编程原理通用编程原理n nGP32SCIGP32SCI模块寄存器模块寄存器 n n串行口初始化与收发编程的基本方法串行口初始化与收发编程的基本方法 n n串行通信通用函数与测试实例串行通信通用函数与测试实例 n n串行通信进一步讨论串行通信进一步讨论 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.1异步串行通信的基础知

2、识异步串行通信的基础知识 7.1.1 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):):):):每秒内传送的位数。每秒内传送的位数。每秒内传送的位数。每秒内传送的位数。 波特率单位是位波特率单位是位波特率单位是位波特率单位是位/ /秒,记为秒

5、,记为秒,记为秒,记为bpsbps。通常情况下,波特率通常情况下,波特率通常情况下,波特率通常情况下,波特率的单位可以省略。通常使用的波特率有的单位可以省略。通常使用的波特率有的单位可以省略。通常使用的波特率有的单位可以省略。通常使用的波特率有300300、600600、900900、12001200、18001800、24002400、48004800、96009600、1920019200、3840038400。 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践 字符奇偶校验检查(字符奇偶校验检查(字符奇偶校验检查(字符奇偶校验检查(character pa

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

7、据位中如果字符数据位中“ “1”1”的数目是偶数,校验位应为的数目是偶数,校验位应为的数目是偶数,校验位应为的数目是偶数,校验位应为“ “1”1”,如,如,如,如果果果果“ “1”1”的数目是奇数,校验位应为的数目是奇数,校验位应为的数目是奇数,校验位应为的数目是奇数,校验位应为“ “0”0”。 偶校验:偶校验:偶校验:偶校验:如果字符数据位中如果字符数据位中如果字符数据位中如果字符数据位中“ “1”1”的数目是偶数,则校验位应为的数目是偶数,则校验位应为的数目是偶数,则校验位应为的数目是偶数,则校验位应为“ “0”0”,如果是奇数则为如果是奇数则为如果是奇数则为如果是奇数则为“ “1”1”。

8、 (3 3)奇偶校验)奇偶校验)奇偶校验)奇偶校验嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践 单工(单工(单工(单工(SimplexSimplex):):):):数据传送是单向的,一端为发送端,另一端为接收数据传送是单向的,一端为发送端,另一端为接收数据传送是单向的,一端为发送端,另一端为接收数据传送是单向的,一端为发送端,另一端为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播端。这种传输方式中,除了地

9、线之外,只要一根数据线就可以了。有线广播就是单工的。就是单工的。就是单工的。就是单工的。 全双工(全双工(全双工(全双工(Full-duplexFull-duplex):):):):数据传送是双向的,且可以同时接收与发送数数据传送是双向的,且可以同时接收与发送数数据传送是双向的,且可以同时接收与发送数数据传送是双向的,且可以同时接收与发送数据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一

10、端的角度看,一根为发送线,另一根为接收线。一般情况下,度看,一根为发送线,另一根为接收线。一般情况下,度看,一根为发送线,另一根为接收线。一般情况下,度看,一根为发送线,另一根为接收线。一般情况下,MCUMCU的异步串行通信的异步串行通信的异步串行通信的异步串行通信接口均是全双工的。接口均是全双工的。接口均是全双工的。接口均是全双工的。 半双工(半双工(半双工(半双工(Half-duplexHalf-duplex):):):):数据传送也是双向的,但是在这种传输方式数据传送也是双向的,但是在这种传输方式数据传送也是双向的,但是在这种传输方式数据传送也是双向的,但是在这种传输方式中,除了地线之外

11、,一般只有一根数据线。任何一个时刻,只能由一方发送中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送数据,另一方接收数据,不能同时收发。在数据,另一方接收数据,不能同时收发。在数据,另一方接收数据,不能同时收发。在数据,另一方接收数据,不能同时收发。在freescalefreescale的的的的HC08HC08系列系列系列系列MCUMCU中,中,中,中,监控模式的通信就采用这种方式。监控模式的通信就采用这种方式。监控模式的通信就采用这种方式。监控模

12、式的通信就采用这种方式。 (4 4)串行通信的传输方式)串行通信的传输方式)串行通信的传输方式)串行通信的传输方式嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践MCUMCU引脚一般输入引脚一般输入引脚一般输入引脚一般输入/ /输出使用输出使用输出使用输出使用TTLTTL电平,而电平,而电平,而电平,而TTLTTL电平的电平的电平的电平的“ “1”1”和和和和“ “0”0”的特征电压分别为的特征电压分别为的特征电压分别为的特征电压分别为2.42.4V V和和和和0.40.4V V,适用于板内数据传输。为适用于板内数据传输。为适用于板内数据传输。为适用于板内数据传

13、输。为了使信号传输得更远,美国电子工业协会了使信号传输得更远,美国电子工业协会了使信号传输得更远,美国电子工业协会了使信号传输得更远,美国电子工业协会EIAEIA(Electronic Electronic Industry AssociationIndustry Association) 制订了串行物理接口标准制订了串行物理接口标准制订了串行物理接口标准制订了串行物理接口标准RS-232CRS-232C。RS-232CRS-232C采用负逻辑,采用负逻辑,采用负逻辑,采用负逻辑,-3-3V V-15V-15V为逻辑为逻辑为逻辑为逻辑“ “1”1”,+3+3V V+15V+15V为逻辑为逻辑为

14、逻辑为逻辑“ “0”0”。RS-232CRS-232C最大的传输距离是最大的传输距离是最大的传输距离是最大的传输距离是3030mm,通信速率一般通信速率一般通信速率一般通信速率一般低于低于低于低于2020KbpsKbps。 7.1.2 7.1.2 RS-232CRS-232C总线标准总线标准总线标准总线标准嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.1.2 7.1.2 RS-232CRS-232C总线标准总线标准总线标准总线标准 RS-232RS-232接口,简称接口,简称接口,简称接口,简称“ “串口串口串口串口” ”,它主要用于连接具有同样接口的室内

15、它主要用于连接具有同样接口的室内它主要用于连接具有同样接口的室内它主要用于连接具有同样接口的室内设备。目前几乎所有计算机上的串行设备。目前几乎所有计算机上的串行设备。目前几乎所有计算机上的串行设备。目前几乎所有计算机上的串行口都是口都是口都是口都是9 9芯接口。右图给出了芯接口。右图给出了芯接口。右图给出了芯接口。右图给出了9 9芯串芯串芯串芯串行接口的排列位置,相应引脚含义见行接口的排列位置,相应引脚含义见行接口的排列位置,相应引脚含义见行接口的排列位置,相应引脚含义见表表表表7-17-1。4 41 12 23 35 56 67 78 89 99 9芯串行接口排列芯串行接口排列表表7-1 9

16、7-1 9芯串行接口引脚含义表芯串行接口引脚含义表引脚引脚号号功功 能能引脚引脚号号功功 能能1 12 23 34 45 5接收接收线线信号信号检测检测( (载载波波检检测测DCDDCD) )接收数据线(接收数据线(RXDRXD)发送数据线(发送数据线(TXDTXD)数据数据终终端准端准备备就就绪绪(DTRDTR)信号地(信号地(SGSG)6 67 78 89 9数据通信数据通信设备设备准准备备就就绪绪( (DSRDSR) )请请求求发发送(送(RTSRTS)清除清除发发送送振振铃铃指示指示返回返回嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.2电平转换电

17、路与电平转换电路与SCI通用编程原理通用编程原理 7.2.1 7.2.1 SCISCI的外围硬件电路的外围硬件电路的外围硬件电路的外围硬件电路 具具具具有有有有SCISCI接接接接口口口口的的的的MCUMCU,一一一一般般般般具具具具有有有有发发发发送送送送引引引引脚脚脚脚( (TxDTxD) )与与与与接接接接收收收收引引引引脚脚脚脚( (RxDRxD) ),不不不不同同同同公公公公司司司司或或或或不不不不同同同同系系系系列列列列的的的的MCUMCU,使使使使用用用用的的的的引引引引脚脚脚脚缩缩缩缩写写写写名名名名可可可可能能能能不不不不一一一一致致致致,但但但但含含含含义义义义相相相相同同

18、同同。SCISCI的的的的外外外外围围围围硬硬硬硬件件件件电电电电路路路路,主主主主要要要要目目目目的的的的是是是是将将将将MCUMCU的的的的发发发发送送送送引引引引脚脚脚脚TxDTxD与与与与接接接接收收收收引引引引脚脚脚脚RxDRxD的的的的TTLTTL电电电电平平平平,通通通通过过过过RS-232RS-232电电电电平平平平转转转转换换换换芯芯芯芯片片片片转换为转换为转换为转换为RS-232RS-232电平。下图给出一个基本电平。下图给出一个基本电平。下图给出一个基本电平。下图给出一个基本SCISCI电平转换电路。电平转换电路。电平转换电路。电平转换电路。MAX232CPE16 15

19、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电平电平OUT INTTLTTL电平电平转为转为232232电平电平14嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.2.2 7.2.2 SCISCI的基本编程原理的基本编程原理的基本编程原理的基本编程原理SCI编程模型SCI数据寄存器数据寄存器MCU MCU 的的 内内 部部 总总 线线 (Internal BusInternal Bus)接收移位寄存器发送移位

20、寄存器接收引脚接收引脚RxD发送引脚发送引脚TxDSCI控制寄存器控制寄存器SCI状态寄存器状态寄存器SCI波特率寄存器波特率寄存器返回返回嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.3 GP32 SCI模块寄存器模块寄存器 1.1.SCISCI的寄存器的寄存器的寄存器的寄存器 MC68HC908GP32MC68HC908GP32的的的的SCISCI有有有有7 7个寄存器,地址为个寄存器,地址为个寄存器,地址为个寄存器,地址为$0013$0013$0019 $0019 。(1 1)SCISCI波特率寄存器波特率寄存器波特率寄存器波特率寄存器( (SCI

21、Baud Rate RegisterSCI Baud Rate Register,SCBR)SCBR) SCBRSCBR的作用是设置串行通信的波特率的作用是设置串行通信的波特率的作用是设置串行通信的波特率的作用是设置串行通信的波特率 ,其地址是,其地址是,其地址是,其地址是$0019$0019。 D7D7、D6D6、D3D3:未定义;未定义;未定义;未定义; D5D5D4 SCPD4 SCP:波特率预分频位波特率预分频位波特率预分频位波特率预分频位( (SCI Baud Rate SCI Baud Rate PrescalerPrescaler Bits) Bits) SCP1 SCP1、SC

22、P0=00 01 10 11SCP0=00 01 10 11 PD= 1 3 4 13 PD= 1 3 4 13数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0D7 D6 D5 D4 D3 D2 D1 D0定义定义 x x SCP1 SCP0 x SCR2 SCR1 x x SCP1 SCP0 x SCR2 SCR1 SCR0SCR0复位复位0000000000000000嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践 D2D2D0 SCRD0 SCR:波特率选择位(波特率选择位(波特率选择位(波特率选择位(SCI Baud Rate Select

23、 BitsSCI Baud Rate Select Bits),),),),定义定义定义定义波特率另一分频值,记为:波特率另一分频值,记为:波特率另一分频值,记为:波特率另一分频值,记为:BDBD,定义如下定义如下定义如下定义如下: : SCR2SCR2、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为串行通信时钟源频率,为串行通信时钟源频率,为串行通信时钟源频率,为

24、串行通信时钟源频率,fSCIfSCI= = fBUSfBUS或或或或CGMXCLKCGMXCLK,取决于取决于取决于取决于CONFIG2CONFIG2的的的的SCIBDSRCSCIBDSRC,一般设定一般设定一般设定一般设定SCIBDSRC=1SCIBDSRC=1,SCISCI用内部总线时钟,则用内部总线时钟,则用内部总线时钟,则用内部总线时钟,则fSCIfSCI= = fBUSfBUS,则波特率的定义公式为:则波特率的定义公式为:则波特率的定义公式为:则波特率的定义公式为: BtBtfBUSfBUS / /(64PDBD64PDBD)(1 1)SCISCI波特率寄存器波特率寄存器波特率寄存器

25、波特率寄存器( (SCI Baud Rate RegisterSCI Baud Rate Register,SCBR)SCBR)嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践(2 2) SCISCI控制寄存器控制寄存器控制寄存器控制寄存器1(1(SCI Control Register 1SCI Control Register 1,SCC1)SCC1)SCC1SCC1的地址是:的地址是:的地址是:的地址是:$0013 ,$0013 ,定义为:定义为:定义为:定义为: D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D000000000000000

26、00复位复位复位复位LOOPSENSCITXINVMWAKEILTYPENPTYLOOPSENSCITXINVMWAKEILTYPENPTY定义定义定义定义数据位数据位数据位数据位循环模式循环模式选择位选择位SCI允许位允许位奇偶校验奇偶校验允许位允许位空闲线空闲线类型位类型位唤醒条件位唤醒条件位模式模式-字符字符长度选择位长度选择位发送反转发送反转标志位标志位奇偶校验类奇偶校验类型选择位型选择位嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践(3 3) SCISCI控制寄存器控制寄存器控制寄存器控制寄存器2(2(SCI Control Register 2SC

27、I Control Register 2,SCC2)SCC2)SCC2SCC2的地址是:的地址是:的地址是:的地址是:$0014 ,$0014 ,定义为:定义为:定义为:定义为:发送中断发送中断允许位允许位 发送完成中发送完成中断允许位断允许位 接收器唤接收器唤醒位醒位发送器允许位发送器允许位 接收中断接收中断允许位允许位 0000000000000000复位复位复位复位SCTIETCIESCRIEILIETERERWUSBKSCTIETCIESCRIEILIETERERWUSBK定义定义定义定义D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0数据位数据位数据位数据位空闲线中空

28、闲线中断允许位断允许位接收器接收器允许位允许位 发送终止位发送终止位 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践(4 4) SCISCI控制寄存器控制寄存器控制寄存器控制寄存器3(3(SCI Control Register 3SCI Control Register 3,SCC3)SCC3)SCC3SCC3的地址是:的地址是:的地址是:的地址是:$0015 ,$0015 ,定义为:定义为:定义为:定义为: 0000000000000000复位复位复位复位R8T8DMAREDMATEORIENEIEFEIEPEIER8T8DMAREDMATEORIENEI

29、EFEIEPEIE定义定义定义定义D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0数据位数据位数据位数据位接收位接收位8 发送位发送位8 接收器帧接收器帧错误中断错误中断允许位允许位 接收器噪接收器噪声错误中声错误中断允许位断允许位 接收器溢出接收器溢出中断允许位中断允许位 DMA发送发送允许位允许位 DMA接收接收允许位允许位 接收器奇偶错接收器奇偶错误中断允许位误中断允许位 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践(5 5) SCISCI状态寄存器状态寄存器状态寄存器状态寄存器1(1(SCI Status Register 1SCI

30、Status Register 1,SCS1 )SCS1 )SCS1SCS1的地址是:的地址是:的地址是:的地址是:$0016 ,$0016 ,定义为:定义为:定义为:定义为:1100000011000000复位复位复位复位 SCTETCSCRFIDLEORNFFEPESCTETCSCRFIDLEORNFFEPE定义(只读)定义(只读)定义(只读)定义(只读) D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0数据位数据位数据位数据位接收器奇接收器奇偶错误标偶错误标志位志位 发送缓冲区发送缓冲区空标志位空标志位 接收器帧错接收器帧错误标志位误标志位 接收器噪接收器噪声标志位声标志

31、位 接收器溢接收器溢出标志位出标志位 接收器满接收器满标志位标志位 发送完成发送完成标志位标志位 接收器空接收器空闲标志位闲标志位 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践(6 6) SCISCI状态寄存器状态寄存器状态寄存器状态寄存器2(2(SCI Status Register 2SCI Status Register 2,SCS2 )SCS2 )SCS2SCS2的地址是:的地址是:的地址是:的地址是:$0017 ,$0017 ,定义为:定义为:定义为:定义为:0000000000000000复位复位复位复位BKFRPFBKFRPF定义(只读)定义(

32、只读)定义(只读)定义(只读) D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0数据位数据位数据位数据位未定义未定义 终止码标志位终止码标志位 接收进行接收进行标志位标志位 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践(7 7) SCISCI数据寄存器数据寄存器数据寄存器数据寄存器( (SCI Data Register SCI Data Register ,SCDR )SCDR ) SCDRSCDR为为为为SCISCI系统最常用的寄存器,它的地址是:系统最常用的寄存器,它的地址是:系统最常用的寄存器,它的地址是:系统最常用的寄存器,它的地址

33、是:$0018$0018。写入时,为要发送的写入时,为要发送的写入时,为要发送的写入时,为要发送的8 8位数据,记为:位数据,记为:位数据,记为:位数据,记为:T7T7T0T0;读出时,为接收读出时,为接收读出时,为接收读出时,为接收的的的的8 8位数据,记为:位数据,记为:位数据,记为:位数据,记为:R7R7R0R0。不受复位影响。不受复位影响。不受复位影响。不受复位影响。嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践(1 1)SCISCI初始化初始化初始化初始化 对对对对SCISCI进行初始化,最少由以下三步构成:进行初始化,最少由以下三步构成:进行初始化

34、,最少由以下三步构成:进行初始化,最少由以下三步构成: 第一步:定义波特率。第一步:定义波特率。第一步:定义波特率。第一步:定义波特率。 LDA #%00000010 LDA #%00000010 STA SCBR ; STA SCBR ;总线频率总线频率总线频率总线频率fBUSfBUS2.4576MHz2.4576MHz,定义波特率定义波特率定义波特率定义波特率Bt=9600Bt=9600 第二步:写控制字到第二步:写控制字到第二步:写控制字到第二步:写控制字到SCISCI控制寄存器控制寄存器控制寄存器控制寄存器1 1(SCC1SCC1)。)。)。)。 LDA #%01000000LDA #

35、%01000000 STA SCC1 ; STA SCC1 ;设置允许设置允许设置允许设置允许SCISCI,正常码输出、正常码输出、正常码输出、正常码输出、8 8位数据、无校验位数据、无校验位数据、无校验位数据、无校验 第三步:写控制字到第三步:写控制字到第三步:写控制字到第三步:写控制字到SCISCI控制寄存器控制寄存器控制寄存器控制寄存器2 2(SCC2SCC2)。)。)。)。 LDA #%00001100 LDA #%00001100 STA SCC2 ; STA SCC2 ;设置允许发送、允许接收,查询方式收发设置允许发送、允许接收,查询方式收发设置允许发送、允许接收,查询方式收发设置

36、允许发送、允许接收,查询方式收发7.4 串行口初始化与收发编程的基本方串行口初始化与收发编程的基本方法法嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践(2 2)发送一个数据与接收一个数据)发送一个数据与接收一个数据)发送一个数据与接收一个数据)发送一个数据与接收一个数据 发送数据是通过判断状态寄存器发送数据是通过判断状态寄存器发送数据是通过判断状态寄存器发送数据是通过判断状态寄存器SCS1SCS1的第的第的第的第7 7位(位(位(位(SCTESCTE)进行的,而进行的,而进行的,而进行的,而接收数据是通过判断状态寄存器接收数据是通过判断状态寄存器接收数据是通过

37、判断状态寄存器接收数据是通过判断状态寄存器SCS1SCS1的第的第的第的第5 5位(位(位(位(SCRFSCRF)进行的。不论是进行的。不论是进行的。不论是进行的。不论是发送还是接收,均使用发送还是接收,均使用发送还是接收,均使用发送还是接收,均使用SCISCI数据寄存器数据寄存器数据寄存器数据寄存器SCDRSCDR。发送时,将要发送的数据发送时,将要发送的数据发送时,将要发送的数据发送时,将要发送的数据送入送入送入送入SCDRSCDR即可,接收时,从即可,接收时,从即可,接收时,从即可,接收时,从SCDRSCDR中取出的即是收到的数据。中取出的即是收到的数据。中取出的即是收到的数据。中取出的

38、即是收到的数据。 ; ;串行发送串行发送串行发送串行发送A A中的数中的数中的数中的数 BRCLR 7,SCS1,* ;SCS1.7=0? BRCLR 7,SCS1,* ;SCS1.7=0? 为为为为0 0则等待则等待则等待则等待 STA SCDR ;SCS1.7=1,STA SCDR ;SCS1.7=1,可以发送数据可以发送数据可以发送数据可以发送数据 ; ;查询方式接收一个串行数据,接收的数据放入寄存器查询方式接收一个串行数据,接收的数据放入寄存器查询方式接收一个串行数据,接收的数据放入寄存器查询方式接收一个串行数据,接收的数据放入寄存器A A中中中中 BRCLR 5,SCS1,* ;SC

39、S1.5=0? BRCLR 5,SCS1,* ;SCS1.5=0? 为为为为0 0则等待则等待则等待则等待 LDA SCDR ;SCS1.5=1,LDA SCDR ;SCS1.5=1,可以取出数据可以取出数据可以取出数据可以取出数据返回返回嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.5 串行通信通用函数与测试实例串行通信通用函数与测试实例7.5.1 7.5.1 串行通信子程序串行通信子程序串行通信子程序串行通信子程序串行通信头文件串行通信头文件串行通信头文件串行通信头文件 SCI.h SCI.h 串行通信驱动文件串行通信驱动文件串行通信驱动文件串行通信驱

40、动文件 SCI.cSCI.c 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行通信头文件串行通信头文件串行通信头文件串行通信头文件 SCI.h SCI.h /SCI.h/SCI.h串行通信头文件串行通信头文件- - #include GP32C.h /GP32 MCU#include GP32C.h /GP32 MCU映像寄存器名定义映像寄存器名定义#include Type.h /#include Type.h /类型别名定义类型别名定义#define #define ReSendStatusRReSendStatusR SCS1 /SCI SCS1 /S

41、CI状态寄存器状态寄存器#define #define ReTestBitReTestBit 5 / 5 /接收缓冲区满标志位接收缓冲区满标志位#define #define SendTestBitSendTestBit 7 / 7 /发送缓冲区空标志位发送缓冲区空标志位#define #define ReSendDataRReSendDataR SCDR / SCDR /数据寄存器数据寄存器/串行通信函数声明串行通信函数声明void void SCIinit(voidSCIinit(void); /); /串行口初始化串行口初始化void SCIsend1(INT8U o); /void S

42、CIsend1(INT8U o); /发送发送1 1字节字节void SCIsendN(INT8U n, INT8U void SCIsendN(INT8U n, INT8U chch); /); /发送发送n n字节字节INT8U SCIre1(INT8U *p); /INT8U SCIre1(INT8U *p); /接收接收1 1字节字节INT8U SCIreN(INT8U n, INT8U INT8U SCIreN(INT8U n, INT8U chch); /); /接收接收n n字节字节_嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行通信驱动文件

43、串行通信驱动文件串行通信驱动文件串行通信驱动文件 SCI.cSCI.c串串行行通通信信驱驱动动文文件件包包括括SCI初初始始化化、接接收收1字字节节、发发送送1字字节节、接接收收n字字节节和和发发送送n字节函数。读者可以直接使用这些函数进行字节函数。读者可以直接使用这些函数进行MCU的串行通信编程。的串行通信编程。/SCI.c/SCI.c串行通信串行通信-*-*/本文件包含本文件包含: *: */ (1)SCIinit: / (1)SCIinit: 串行口初始化串行口初始化 * */ (2)SCIsend1:/ (2)SCIsend1:串行发送串行发送1 1个字节个字节 * */ (3)SCI

44、sendN:/ (3)SCIsendN:串行发送串行发送n n字节字节 * */ (4)SCIre1: / (4)SCIre1: 串行接收串行接收1 1字节字节 * */ (5)SCIreN: / (5)SCIreN: 串行接收串行接收n n字节字节 * */硬件连接硬件连接: *: */ MCU/ MCU的串口与的串口与PCPC方的串口相连方的串口相连 * */-*/-*嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/头文件头文件#include SCI.h#include SCI.h/SCIinitSCIinit: :串行口初始化串行口初始化-*-*/功能

45、功能: :对串行口进行初始化对串行口进行初始化, ,默认为允许默认为允许SCI,SCI,正常码输出正常码输出,8,8位数位数 * * 据据, ,无校验无校验, *, */允许发送器允许发送器, ,允许接收器允许接收器. .查询方式收发查询方式收发, ,波特率为波特率为9600(9600(设设fBUSfBUS * * = 2.4576MHz) * = 2.4576MHz) */参数参数: :无无 * */返回返回: :无无 * */说明说明: :该函数与具体的芯片型号该函数与具体的芯片型号(MC68HC908GP32)(MC68HC908GP32)有关有关 * */-*/-*void void

46、SCIinit(voidSCIinit(void) ) /1. /1.总线频率总线频率fBUSfBUS = 2.4576MHz, = 2.4576MHz,定义波特率定义波特率Bt = 9600Bt = 9600 SCBR = 0b00000010; SCBR = 0b00000010; /2. /2.设置允许设置允许SCI,SCI,正常码输出正常码输出,8,8位数据位数据, ,无校验无校验 SCC1 = 0b01000000; SCC1 = 0b01000000; /3. /3.设置允许发送设置允许发送, ,允许接收允许接收, ,查询方式收发查询方式收发 SCC2 = 0b00001100;S

47、CC2 = 0b00001100; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/SCIsend1:/SCIsend1:串行发送串行发送1 1个字节个字节-*-*/功能功能: :串行发送串行发送1 1个字节个字节 * */参数参数: :要发送的数据要发送的数据 * */返回返回: :无无 * */-*/-*void SCIsend1(INT8U o)void SCIsend1(INT8U o) / /判断判断ReStatusRReStatusR的第的第SendTestBitSendTestBit位是否为位是否为1,1,是是1 1可以发送可以发送 while

48、(1)while (1) if ( if (ReSendStatusRReSendStatusR & (1 & (1SendTestBitSendTestBit) != 0) != 0) ReSendDataRReSendDataR = o; = o; break; break; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/SCIsendNSCIsendN: :串行发送串行发送N N个字节个字节-*-*/功能功能: :发送数组中的发送数组中的N N个字节数据个字节数据 * */参数参数: :待发送数据的字节数及存放这些数据的数组首地址待发送数据的字节数及存

49、放这些数据的数组首地址 * */返回返回: :无无 * */内部调用函数内部调用函数:SCIsend1 *:SCIsend1 */-*/-*void SCIsendN(INT8U n, INT8U void SCIsendN(INT8U n, INT8U chch) intint i; i; for(i=0; in; i+) for(i=0; in; i+) SCIsend1(chi); SCIsend1(chi); 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/SCIre1:/SCIre1:串行收一个字节数据串行收一个字节数据-*-*/功能功能: :从串行

50、口接收从串行口接收1 1个字节的数据个字节的数据 * */参数参数: :标志指针标志指针p *p */返回返回: :接收到的数据(若接收失败,返回接收到的数据(若接收失败,返回0xff0xff) * */说明说明: :参数参数* *p p带回接收标志带回接收标志.*p = 0,.*p = 0,收到数据收到数据;*p = 1,;*p = 1,未收到数据未收到数据 * */-*/-*INT8U SCIre1(INT8U *p)INT8U SCIre1(INT8U *p) INT16U k; INT16U k; INT8U i; INT8U i; / /ReStatusRReStatusR第第ReT

51、estBitReTestBit位为位为1 1表示可接收数据表示可接收数据 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践for(k=0; k 0xfbbb; k+)for(k=0; k 0xfbbb; k+) if ( if (ReSendStatusRReSendStatusR & (1 & (1= 0xfbbb)if (k = 0xfbbb) i = 0xff; i = 0xff; *p = 0x01; *p = 0x01; return i; return i; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/SCIre

52、N:HC08/SCIreN:HC08串行接收串行接收N N个字节个字节-*-*/功能功能: :接收接收N N个字节数据个字节数据, ,并存放在并存放在chch数组中数组中 * */参数参数: :待接收的数据字节数及其存放的数组首地址待接收的数据字节数及其存放的数组首地址 * */返回返回: :接收标志接收标志 = 0 = 0 收到数据收到数据, = 1 , = 1 未收到数据未收到数据 * */内部调用函数内部调用函数:SCIre1 *:SCIre1 */-*/-*INT8U SCIreN(INT8U n, INT8U INT8U SCIreN(INT8U n, INT8U chch) int

53、int m; m; INT8U INT8U fpfp; ; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践m = 0;m = 0; while (m n) while (m n) chmchm = SCIre1(&fp); = SCIre1(&fp); if ( if (fpfp = 1) = 1) return 1; return 1; m+; m+; return 0; return 0; 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践(1 1)查询方式工程)查询方式工程)查询方式工程)查询方式工程(08(08C)C)文件

54、列表文件列表文件列表文件列表(2 2)查询方式)查询方式)查询方式)查询方式0808C C语言主程序语言主程序语言主程序语言主程序(3 3)中断方式中断方式中断方式中断方式MCUMCU方主程序方主程序方主程序方主程序 7.5.27.5.2查询方式工程文件查询方式工程文件查询方式工程文件查询方式工程文件嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践中断方式中断方式中断方式中断方式0808C C工程文件列表工程文件列表工程文件列表工程文件列表中断方式中断方式中断方式中断方式0808C C语言主程序语言主程序语言主程序语言主程序main.cmain.c 串行中断子函

55、数声明串行中断子函数声明串行中断子函数声明串行中断子函数声明EnDisInt.h 串行中断处理函数串行中断处理函数串行中断处理函数串行中断处理函数 串行中断方式矢量表文件串行中断方式矢量表文件串行中断方式矢量表文件串行中断方式矢量表文件7.5.3 中断方式工程文件中断方式工程文件返回返回嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践中断方式中断方式08C工程文件列表工程文件列表表表7-5 中断方式中断方式08C测试工程文件测试工程文件工程文件名工程文件名SCI_INT.prj所在路径所在路径MC08Ex2007GP32GP32CC03_串行通信中断方式串行通信

56、中断方式文件类型文件类型文件名文件名功能简述功能简述讲解章节讲解章节头文件头文件GP32C.h芯片头文件芯片头文件08C工程文件组织工程文件组织5.3Includes.h总头文件总头文件08C工程文件组织工程文件组织5.3EnDisInt.h开放或禁止开放或禁止MCU模块模块中断中断08C工程文件组织工程文件组织5.3SCI.h串行通信头文件串行通信头文件本章本章Type.h数据类型头文件数据类型头文件08C工程文件组织工程文件组织5.3C语言语言子函数文件子函数文件MCUinit.c芯片系统初始化函数芯片系统初始化函数定义定义初始化及初始化及PLL编程实例编程实例14.2.5SCI.cCI收

57、发子函数定义收发子函数定义本章本章Vectors.c中断处理及中断向量中断处理及中断向量表表08C工程文件组织工程文件组织5.3C语言主函数语言主函数Main.c主函数主函数本章本章嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践中断方式中断方式08C语言主程序语言主程序main.c/-*/-*/工工 程程 名名: :SCI_Int.prjSCI_Int.prj * */硬件连接硬件连接: *: */ (1)MCU/ (1)MCU的串口与的串口与PCPC方的串口相连方的串口相连 * */程序描述程序描述: :利用中断方式把收到的数据发送回去利用中断方式把收到的数

58、据发送回去 * */目目 的的: :初步掌握利用中断方式进行串行通信的基本知识初步掌握利用中断方式进行串行通信的基本知识 * */-/-清华清华20072007版版嵌入式技术基础与实践嵌入式技术基础与实践实例实例-*-*/总头文件总头文件#include Includes.h#include Includes.h/主函数主函数void main()void main() DisableMCUintDisableMCUint(); /(); /禁止总中断禁止总中断 /1. /1. 芯片初始化芯片初始化 MCUinitMCUinit(); (); /2. /2. 模块初始化模块初始化 SCIini

59、tSCIinit(); /(1) (); /(1) 串口初始化串口初始化 /3. /3. 开放各模块中断开放各模块中断 EnableSCIreIntEnableSCIreInt(); /(1)(); /(1)开放开放SCISCI接收中断接收中断 /4. /4. 开放总中断开放总中断 EnableMCUintEnableMCUint(); (); / /主循环主循环 while (1)while (1) 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行中断子函数声明串行中断子函数声明EnDisInt.h n n在在在在该该该该头头头头文文文文件件件件中中中中对

60、对对对开开开开关关关关总总总总中中中中断断断断进进进进行行行行了了了了宏宏宏宏定定定定义义义义,并并并并且且且且其其其其他他他他各各各各个个个个模模模模块块块块的的的的中中中中断断断断设设设设置置置置函函函函数数数数在在在在此此此此进进进进行声明。行声明。行声明。行声明。/EnDisInt.hEnDisInt.h 开开放放或或禁禁止止MCUMCU各各模模块块中中断断头头文文件件-#include GP32C.h /GP32 MCU#include GP32C.h /GP32 MCU映像寄存器名定义映像寄存器名定义/开放或禁止中断宏定义开放或禁止中断宏定义#define #define Enab

61、leMCUintEnableMCUint() () asm(CLIasm(CLI) /) /开放总中断开放总中断#define #define DisableMCUintDisableMCUint() () asm(SEIasm(SEI) /) /禁止总中断禁止总中断#define #define EnableSCIreIntEnableSCIreInt() () SCC2 SCC2 |= |= (1 (1 5) 5) /令令SCC2.5=1,SCC2.5=1,开开放放SCISCI接收中断接收中断#define #define DisableSCIreIntDisableSCIreInt()

62、() SCC2 SCC2 &= &= (1 (1 5) 5) /令令SCC2.5=0,SCC2.5=0,禁禁止止SCISCI接收中断接收中断嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行中断处理函数串行中断处理函数/Vectors08.c/Vectors08.c中断处理函数与中断向量表中断处理函数与中断向量表-*-*/功能功能: *: */ (1)/ (1)定义中断处理子程序定义中断处理子程序 * */ (2)/ (2)放置中断向量表放置中断向量表 * */本文件包含本文件包含: : / (1)SCI/ (1)SCI接收中断处理函数接收中断处理函数 * *

63、/ (2)/ (2)未定义的中断处理函数未定义的中断处理函数 * */说明说明: :该文件与芯片具体型号有关该文件与芯片具体型号有关 * */ (1)/ (1)芯片型号芯片型号MC68HC908GP32 *MC68HC908GP32 */- */- *#include Type.h /#include Type.h /类型别名定义类型别名定义#include #include EnDisInt.hEnDisInt.h / /开放或禁止开放或禁止MCUMCU各模块中断的宏定义各模块中断的宏定义#include SCI.h /#include SCI.h /该头文件包含串行通信函数声明该头文件包含

64、串行通信函数声明/isrSCIreisrSCIre: :接收中断处理函数接收中断处理函数- -*- -*/功能功能: :接收接收1 1个字节数据个字节数据, , 发送接到的数据发送接到的数据 * */参数参数: :无无 * */返回返回: :无无 * */内部调用函数内部调用函数: :SCIreNSCIreN, , SCIsendNSCIsendN * */-*/-*嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践#pragmainterrupt_handlerisrSCIrevoidisrSCIre(void)INT8Uf;/标志是否接受到数据标志是否接受到数

65、据INT8USerialBuff1;/存放接收数据的数组存放接收数据的数组DisableMCUint();/禁止总中断禁止总中断/接收接收1个字节的数据个字节的数据f=SCIreN(1,SerialBuff);/若收到数据若收到数据,则发送接到的数据则发送接到的数据if(f=0)SCIsendN(1,SerialBuff);EnableMCUint();/开放总中断开放总中断/此处为用户中断处理函数的存放处此处为用户中断处理函数的存放处嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践/未定义的中断处理函数未定义的中断处理函数,本函数不能删除本函数不能删除#pra

66、gmainterrupt_handlerisrDummyvoidisrDummy(void)/中断矢量表中断矢量表,需定义中断函数需定义中断函数,可修改下表中的相应项目可修改下表中的相应项目/(interruptserviceroutine,isr中断处理程序中断处理程序)#pragmaabs_address:0xffdc/中断向量表起始地址中断向量表起始地址void(*const_vectab)(void)=/省略其他未使用的中断向量定义省略其他未使用的中断向量定义isrSCIre,/SCI接收中断接收中断/省略其他未使用的中断向量定义省略其他未使用的中断向量定义;#pragmaend_ab

67、s_address嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践串行中断方式矢量表文件串行中断方式矢量表文件n nHC08HC08的的的的中中中中断断断断向向向向量量量量表表表表的的的的详详详详细细细细说说说说明明明明在在在在前前前前面面面面章章章章节节节节已已已已经经经经介介介介绍绍绍绍。在在在在使使使使用用用用中中中中断断断断方方方方式式式式时时时时,只只只只要要要要将将将将中中中中断断断断向向向向量量量量表表表表中中中中串串串串行行行行接接接接收收收收中中中中断断断断项项项项的的的的isrDummyisrDummy该该该该为为为为中中中中断断断断处处处处

68、理理理理函函函函数数数数的的的的函函函函数名数名数名数名isrSCIReisrSCIRe即可,函数内容如上面所描述的。即可,函数内容如上面所描述的。即可,函数内容如上面所描述的。即可,函数内容如上面所描述的。n n本本本本节节节节仅仅仅仅讲讲讲讲述述述述了了了了串串串串行行行行通通通通信信信信的的的的0808C C编编编编程程程程实实实实例例例例,用用用用汇汇汇汇编编编编编编编编程程程程的的的的思思思思想想想想与与与与之之之之基基基基本本本本类类类类似似似似,读读读读者者者者可可可可以以以以参参参参见见见见教教教教学学学学资资资资料料料料的的的的“ “MC08Ex2007GP32GP32SC0

69、2_MC08Ex2007GP32GP32SC02_串串串串行行行行通通通通信信信信查查查查询询询询方方方方式式式式” ”和和和和“ “MC08Ex2007GP32GP32SC03_MC08Ex2007GP32GP32SC03_串串串串行行行行通信中断方式通信中断方式通信中断方式通信中断方式” ”下的汇编工程文件。下的汇编工程文件。下的汇编工程文件。下的汇编工程文件。嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.5.4 串口调试器串口调试器(SSCOM V3.2) 串口调试工具比较多,串口调试工具比较多,串口调试工具比较多,串口调试工具比较多,SSCOMSS

70、COM是其中比较出色的一款软件是其中比较出色的一款软件是其中比较出色的一款软件是其中比较出色的一款软件 。下图是该。下图是该。下图是该。下图是该软件的一个界面。软件的一个界面。软件的一个界面。软件的一个界面。 读者可以从网址读者可以从网址读者可以从网址读者可以从网址 http:/ download/ download/sscomsscom. .rarrar 中下载中下载中下载中下载 。嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.6 串行通信进一步讨论串行通信进一步讨论7.6.1 7.6.1 唤醒功能唤醒功能唤醒功能唤醒功能唤醒:一旦接收器进入睡眠,要响应

71、对它寻址的信息需要唤醒:一旦接收器进入睡眠,要响应对它寻址的信息需要唤醒:一旦接收器进入睡眠,要响应对它寻址的信息需要唤醒:一旦接收器进入睡眠,要响应对它寻址的信息需要一个过程。一个过程。一个过程。一个过程。 空闲线唤醒:空闲线唤醒:空闲线唤醒:空闲线唤醒:SCISCI系统使用空闲线唤醒,就需要建立一个系统使用空闲线唤醒,就需要建立一个系统使用空闲线唤醒,就需要建立一个系统使用空闲线唤醒,就需要建立一个协议。协议。协议。协议。 地址标志唤醒:最高位地址标志唤醒:最高位地址标志唤醒:最高位地址标志唤醒:最高位( (MSB)MSB)为为为为1 1的一个字符会唤醒所有使的一个字符会唤醒所有使的一个字

72、符会唤醒所有使的一个字符会唤醒所有使能地址标志唤醒的接收器。能地址标志唤醒的接收器。能地址标志唤醒的接收器。能地址标志唤醒的接收器。 嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.6.2 7.6.2 协议和控制流问题协议和控制流问题协议和控制流问题协议和控制流问题n n从本质上来说,协议是建立连接和传输信息的一套规范。流从本质上来说,协议是建立连接和传输信息的一套规范。流从本质上来说,协议是建立连接和传输信息的一套规范。流从本质上来说,协议是建立连接和传输信息的一套规范。流控制指的是停止数据传输和重新开始数据传输的方法。控制指的是停止数据传输和重新开始数据

73、传输的方法。控制指的是停止数据传输和重新开始数据传输的方法。控制指的是停止数据传输和重新开始数据传输的方法。n n应答应答应答应答/ /不应答不应答不应答不应答( (AcknowlegeAcknowlege/Not /Not AcknowlegeAcknowlege,ACK/NAK)ACK/NAK)流控制流控制流控制流控制 某些协议某些协议某些协议某些协议( (如如如如KermitKermit和和和和BisynchBisynch) )使用一个发送者,使用一个发送者,使用一个发送者,使用一个发送者,后者在发送下一组数据前,需要等待接收者对前一组数据的后者在发送下一组数据前,需要等待接收者对前一组

74、数据的后者在发送下一组数据前,需要等待接收者对前一组数据的后者在发送下一组数据前,需要等待接收者对前一组数据的应答。在一组数据发送后,接收者需要检测数据的有效性。应答。在一组数据发送后,接收者需要检测数据的有效性。应答。在一组数据发送后,接收者需要检测数据的有效性。应答。在一组数据发送后,接收者需要检测数据的有效性。n nXON/XOFFXON/XOFF协议。协议。协议。协议。嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践嵌入式技术基础与实践7.6.3 7.6.3 用普通用普通用普通用普通I/OI/O口模拟口模拟口模拟口模拟SCISCI接收数据接收数据接收数据接收数据 在实际应用

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

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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