图2所示是STC89C58RD+单片机为处置器,以串行通讯控制器Z85C30和GMSK调制解调器CMX589为外部电路组成的一个嵌入式系统,可用于完成HDLC数据的打包和拆包,以及将数字信号调制成GMSK信号。
4 MIS系统串行通讯的软件完成
顺序运转的开端,都要原始化单片机,并配置中缀和原始化串口。Z85C30的各种形态都运用中缀处置顺序来处置才干使顺序的执行效率抵达最高。
将 Z85C30发射通道配置成双字节同步方式,同步字节为55H,并且向发射缓冲存放器写入55H,便可完成MIS系统要求的训练序列。在这种方式下,在使能发射后,先发射同步字节,同步字节发射完成后再发射数据。当发射缓冲存放器为空时,Z85C30会配置发射缓冲存放器空标志位,假设Z85C30准许发射中缀,这时就可发生中缀。在中缀处置顺序中能够判别训练序列能不能发射终了。
要发射的数据必需契合HDLC协议中规则的帧格式,所以,在发射完训练序列后,还必需将Z85C30配置成HDLC方式。然后将要发射的数据写入发射缓冲存放器。在使能发射后,数据就会紧接着训练序列从发射引脚送出。由于Z85C30是以字节发射数据,所以,在中缀处置顺序中必需判别能不能还需发射数据。假设须要发射数据,就应向发射缓冲存放器中继续写入数据:假设不须要,那么,当Z85C30检测到发射移位存放器为空时,就会自动在数据后面添加CRC值和完毕标志。
Z85C30接纳通道的原始化和发射通道不一样,它不须要思索接纳训练序列,由于训练序列用于接纳机同步。Z85C30的接纳通道能够直接配置成HDLC 方式,在其接纳到起始标志后,就意味着后面紧接着接纳的就是数据。假设Z85C30配置了接纳中缀,那么,当数据接纳存放器中数据写满时,就会发生接纳中缀,中缀处置顺序就应将数据读出,以消弭中缀形态。接纳完数据后,紧接着应该接纳CRC值。Z85C30可将16位CRC值以接纳数据的方式接纳,但 Z85C30会自动比拟接纳的CRC值和计算的CRC值,假设两值不一致,就会配置CRC错误位。当Z85C30在数据流中接纳到完毕标志时,它会发生帧完毕中缀。因而,在软件设计时,顺序应该在帧完毕中缀中判别CRC能不能正确,以便确定能不能应当保管刚接纳的一帧数据。
Z85C30有两个通道,每个通道能够发送,也可以够接纳数据。由于数据的拆包只是数据打包的逆流程,并且Z85C30也支持HDLC帧数据的拆包,所以,在此只引见如何举行数据打包。将打包的数据发给GMSK调制解调器CMX589,就能够得到很好的GMSK信号,这样,GMSK信号就能够由高频板调制发射出去,以便和其他台站完成通讯。本系统的软件流程如图3所示。