一个单片机系统是由硬件系统和软件系统构成的。硬件是实现功能的前提,而系统功能则是通过软件来实现的,为了保证各个模块通信,实现系统信息交流,必须制订系统的通信协议。 从物理上来说,系统各模块是以半双工的模式来通信的,下文提及的智能照明系统下端模块就是以半双工的rs 485总路线为通信架构的。而计算机的rs 232串口是以全双工的模式来实现通信的,因此,计算机要通过串口参与到单片机系统中必须增加一个rs 232和rs 485总线转换的模块。 从逻辑上讲,要实现各模块之间的通信,就必须在模块间约定一个共同遵守的通信协议。单片机以位(b)为基本单位,传输时以8位1字节(b)来传输,单片机以毫秒间距发送若干个字节为一个数据包,也称为一帧,帧之间又规定若干毫秒的间隙。通过计算机程序可以捕获线路中每一帧信息。 下面以智能照明系统为例,讲述单片机系统的通信协议。 本协议采用异步串行通信方式,字节帧格式:1个起始位+8个数据位+1个停止位,无校验位。 帧格式如下: l帧=帧头(f4h f5h)+数据包+帧尾(f4hfbh)<255b 数据包=有效字节数(1b)+传输层数据+校验和(1b)<251b 帧数据的发送、接收过程中前后两字节数据传送延时不得超过o.5s。 各模块分配两个字节的地址码,第一字节代表模块类型,第二字节代表模块在系统中分配的顺序。各模块获取总线上的帧后,对自己的地址帧响应,其他的帧抛掉。 以下是本协议中的关于"灯开停控制"的协议: 描述:该信息是输出子模块的各路灯的开或关控制。 构成:该信息发送时由信息头和信息内容构成,返回时由信息头构成。