- 1、本文档共367页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串行通信和并行通信的详解
波特率与比特率 波特率指数据信号对载波的调制速率,它用单位时间内载波调制状态改变次数来表示,其单位为波特(Baud)。 波特率与比特率的关系是比特率=波特率×单个调制状态对应的二进制位数。 在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。波特率是传输通道频宽的指标。 例如,数据传送速率为120字符/秒(这个速率可以称为波特率),而每一个字符为10位,则其传送的比特率为10×120=1200位/秒=1200比特。 在后面的描述中,为了适应习惯用法,将比特率和波特率统一使用波特率来表示。 STC15F2K60S2的串行口既可以用于串行异步通信,也可以构成同步移位寄存器。 如果在串行口的输入/输出引脚上加上电平转换器,可以方便地构成标准的RS-232接口。 STC15F2K60S2单片机的串行口有4种工作方式,有的工作方式的波特率是可变的。用户用软件编程的方法在串行控制寄存器中写入相应的控制字节,即可改变串行口的波特率和工作方式。 其中,S2SM0用于指定串口2的工作方式,如表所示 当T2x12=1时,定时器2的溢出率= SYSclk / ( 65536 - [RL_TH2,RL_TL2]) 当T2x12=0时,定时器2的溢出率= SYSclk / 12 / ( 65536 - [RL_ TH2,RL_TL2]) 式中RL_TH2是T2H的重装载寄存器,RL_TL2是T2L的重装载寄存器。 主机可以用从机地址来选择性的访问从机。可以用广播的方式来寻址所有的从机。 从机的地址由SADDR和SADEN寄存器定义,从机地址是由SADDR设定的8位数据,如果SADEN中相应的位置0,则SADDR中对应的位无效。只有当SADEN中的相应位为1,SADDR中的数据才有效。也就是说,SADEN寄存器使能串口的自动地址识别功能,当SADEN中的某位被置为1,那么SADDR寄存器中的相应位会与接收到的数据进行比较。 如果SADEN.n被设为0,那么系统会忽略对该位的比较。如果SADEN为全0,那么对于所有的地址帧系统都会产生中断。 (8)串口1的中继广播方式设置 CLK_DIV寄存器中的Tx_Rx位用于串口1的中继广播方式设置。 0:串口1为正常工作方式 1:串口1为中继广播方式,即将RxD端口输入的电平状态实时输出在TxD外部管脚上。 接收过程 控制字除方式0外,还应置允许接收控制位REN=1,并清除RI中断标志。接收过程启动后,RXD为数据输入端,TXD为同步信号输出端。串行接收的波特率为SYSclk/12或SYSclk/2(由UART_M0x6确定是12分频还是2分频)。接收完8位数据后重新置RI=1。当再次接收时,必须通过软件将RI清0。 发送过程 发送数据时,数据由串行发送端TxD输出。当单片机执行一条写SBUF的指令时,就启动串行通信的发送,写SBUF信号还把1装入发送移位寄存器的第9位,并通知TX控制器开始发送。发送各位的定时时间由16分频计数器同步。 移位寄存器将数据不断右移送TxD端口发送,在数据的左边不断移入0作补充。当数据的最高位移到移位寄存器的输出位置,紧跟其后的是第9位“1”,在它的左边各位全为“0”,这个状态条件,使TX控制器作最后一次移位输出,然后使允许发送信号“SEND”失效,完成一帧信息的发送,并置位中断请求位TI,即TI=1,向CPU请求中断处理。 接收过程 当软件置位接收允许标志位REN,即REN=1时,接收器便以选定波特率的16分频的速率采样串行接收端口RxD,当检测到RxD端口从1→0的负跳变时就启动接收器准备接收数据,并立即复位16分频计数器,将1FFH值装入移位寄存器。复位16分频计数器的目的是使它与输入位时间同步。 16分频计数器的16个状态是将每位的接收时间均为16等份,在每位时间的7、8、9状态由检测器对RxD端口进行采样,经“三中取二”后的值作为本次所接收的值,即3次采样至少2次相同的值,以此消除干扰影响,提高可靠性。在起始位,如果接收到的值不为0(低电平),则起始位无效,复位接收电路,并重新检测1→0的跳变。如果接收到的起始位有效,则将它输入移位寄存器,并接收本帧的其余信息。 接收的数据从接收移位寄存器的右边移入,已装入的1FFH向左边移出,当起始位0移到移位寄存器的最左边时,使RX控制器作最后一次移位,完成一帧的接收。若同时满足以下两个条件: RI=0; SM2=0或接收到的停止位为1。 则接收到的数据有效,数据载入SBUF,停止位进入RB8,置位RI,向CPU请求中断,若上述两条件不能同时满足,则接收到的数据作废并丢失,无论条件满足与否,接收器重新检测RxD端口上的1→0的跳变,继续下一帧的接收。接收有效
文档评论(0)