MCS-51单片机与无线调制器的综合应用
发布时间:2008/5/29 0:00:00 访问次数:390
1 系统组成
本系统主要由单片机和调制解调器组成,单片机选用p89c58,其作为控制电路的主要部分,对k224芯片进行控制,并完成各个芯片的初始化工作,同时还有对数据进行交织纠错编码的功能。单片机与k224接口的连接如图1所示。
整个系统分为两个部分,一部分为主呼结构,另一部分为应答结构。图1只给出了主呼部分。工作时,先上电复位,由p89c58对k224进行初始化设置,并对其自身的串行口进行初始化。
整个系统的工作过程为:从gps接收机接收下来数据后,经过rs 232接口电路(即由max232构成的电平转换电路),变为ttl电平,送至p89c58的rxd端,p89c58对数据进行分组编码、交错编码后,送到p89c58的txd端输出,此输出信号送到k224的txd,经过调制后从k224的txa端输出调制信号。当接收机从rxa处接收到调制信号后,经过k224处理,解调后由k224通过rxd端口送至p89c58的rxd接收端,由p89c58对数据进行反交织、解码处理,此后,数据从单片机的txd端口处送出去,再一次经过icl232的电平转换,以rs232电平送至计算机进行计算分析。
2 单片机的初始设置
在本系统中,由于要用到p89c58对各个芯片进行初始化设置,并且还要利用其完成数据的交织纠错功能,这就需要用到单片机的特殊功能寄存器进行设置,同时需要利用单片机内部ram的可位寻址区来完成交织编码的功能。对于mcs-51系列的单片机来说,其特殊功能寄存器中对串行口进行控制的有scon和pcon。pcon是电源控制寄存器,其中d7位smod为串行口波特率系数控制位,如smod=1,则波特率加倍。特殊功能寄存器scon字节地址为98h,且可位寻址。scon用来设定串行口的工作方式、接收发送控制以及设置状态标志。
在串行口的4种工作方式中,主要用于扩展并行输入输出口。考虑到上述参数,我们设置单片机工作于串行方式1,即一帧数据格式为:1个起始位、8个数据位、1个停止位、无奇偶校验。由于单片机串行口4种工作方式中,并无2个停止位的数据格式,我们没必要为了凑齐2个停止位而刻意采用方式3,用9位数据格式中的一位来代替停止位。另外,如节省下这1个停止位,由于gps导航仪输出的数据格式为2个停止位,而单片机工作于方式1,当其接收到1个停止位时,就认为一帧数据已接收完毕,从而就有了1个停止位的时间进行别的处理。对于波特率为2 400 b/s的数据来说,码元宽度为1/2 400=0.42 ms,对于波特率为1 200 b/s的数据,码元宽度为1/1 200=0.83 ms。在本系统中,由于采用的是11.059 2 mhz晶振,其机器周期近似为1μs。比较后可以看出,节省下来的时间有一定的利用价值,从而有更多的时间去进行交织纠错的编码处理。由于系统工作时接收数据采用的是查询方式,也即上电复位后,即不停地循环检测有无数据输入,直到检测到有数据输人为止。这样,如有更多的时间进行数据处理,则不会因为处理数据而导致有些数据漏检从而丢失了数据。
本系统中接收数据的波特率设定为1 200 b/s,2 400 b/s,采用定时器t1作为波特率发生器,t1工作于自动装载方式的工作方式2,tl1作计数用,自动重装的值放在th1中时,溢出率可由下式确定:
溢出率=计数速率/[256-(th1)]
其波特率由下式确定:
波特率=(定时/计数器1溢出率)/(32/2smod)
其中smod为特殊功能寄存器pcon中的第8位特殊位。
3 交织纠错编码的设计
纠错编码是提高数字传输可靠性的一种技术,是正确传输差分gps改正信号的重要手段。数据在传输过程中,由于传输信道内部噪声及其造成的符号间干扰,以及传输外界环境的干扰,常常有突发性的错误发生。为了提高抗干扰能力,我们采用交织纠错编码来将一连串错误分散到多个码字中去,然后再采用能够纠正较少错误的码字进行编码,这样就可能纠正有较长错误的码字。例如,给定一个(n,k)线性分组码,我们利用交织可以把长为bλ的单个突发错误分散到λ个(n,k)码字中去,从而使每个(n,k)码字中只有长度为b的突发错误,这就提高了系统抗干扰的能力,提高了系统的纠错能力。
mcs-51单片机内
1 系统组成
本系统主要由单片机和调制解调器组成,单片机选用p89c58,其作为控制电路的主要部分,对k224芯片进行控制,并完成各个芯片的初始化工作,同时还有对数据进行交织纠错编码的功能。单片机与k224接口的连接如图1所示。
整个系统分为两个部分,一部分为主呼结构,另一部分为应答结构。图1只给出了主呼部分。工作时,先上电复位,由p89c58对k224进行初始化设置,并对其自身的串行口进行初始化。
整个系统的工作过程为:从gps接收机接收下来数据后,经过rs 232接口电路(即由max232构成的电平转换电路),变为ttl电平,送至p89c58的rxd端,p89c58对数据进行分组编码、交错编码后,送到p89c58的txd端输出,此输出信号送到k224的txd,经过调制后从k224的txa端输出调制信号。当接收机从rxa处接收到调制信号后,经过k224处理,解调后由k224通过rxd端口送至p89c58的rxd接收端,由p89c58对数据进行反交织、解码处理,此后,数据从单片机的txd端口处送出去,再一次经过icl232的电平转换,以rs232电平送至计算机进行计算分析。
2 单片机的初始设置
在本系统中,由于要用到p89c58对各个芯片进行初始化设置,并且还要利用其完成数据的交织纠错功能,这就需要用到单片机的特殊功能寄存器进行设置,同时需要利用单片机内部ram的可位寻址区来完成交织编码的功能。对于mcs-51系列的单片机来说,其特殊功能寄存器中对串行口进行控制的有scon和pcon。pcon是电源控制寄存器,其中d7位smod为串行口波特率系数控制位,如smod=1,则波特率加倍。特殊功能寄存器scon字节地址为98h,且可位寻址。scon用来设定串行口的工作方式、接收发送控制以及设置状态标志。
在串行口的4种工作方式中,主要用于扩展并行输入输出口。考虑到上述参数,我们设置单片机工作于串行方式1,即一帧数据格式为:1个起始位、8个数据位、1个停止位、无奇偶校验。由于单片机串行口4种工作方式中,并无2个停止位的数据格式,我们没必要为了凑齐2个停止位而刻意采用方式3,用9位数据格式中的一位来代替停止位。另外,如节省下这1个停止位,由于gps导航仪输出的数据格式为2个停止位,而单片机工作于方式1,当其接收到1个停止位时,就认为一帧数据已接收完毕,从而就有了1个停止位的时间进行别的处理。对于波特率为2 400 b/s的数据来说,码元宽度为1/2 400=0.42 ms,对于波特率为1 200 b/s的数据,码元宽度为1/1 200=0.83 ms。在本系统中,由于采用的是11.059 2 mhz晶振,其机器周期近似为1μs。比较后可以看出,节省下来的时间有一定的利用价值,从而有更多的时间去进行交织纠错的编码处理。由于系统工作时接收数据采用的是查询方式,也即上电复位后,即不停地循环检测有无数据输入,直到检测到有数据输人为止。这样,如有更多的时间进行数据处理,则不会因为处理数据而导致有些数据漏检从而丢失了数据。
本系统中接收数据的波特率设定为1 200 b/s,2 400 b/s,采用定时器t1作为波特率发生器,t1工作于自动装载方式的工作方式2,tl1作计数用,自动重装的值放在th1中时,溢出率可由下式确定:
溢出率=计数速率/[256-(th1)]
其波特率由下式确定:
波特率=(定时/计数器1溢出率)/(32/2smod)
其中smod为特殊功能寄存器pcon中的第8位特殊位。
3 交织纠错编码的设计
纠错编码是提高数字传输可靠性的一种技术,是正确传输差分gps改正信号的重要手段。数据在传输过程中,由于传输信道内部噪声及其造成的符号间干扰,以及传输外界环境的干扰,常常有突发性的错误发生。为了提高抗干扰能力,我们采用交织纠错编码来将一连串错误分散到多个码字中去,然后再采用能够纠正较少错误的码字进行编码,这样就可能纠正有较长错误的码字。例如,给定一个(n,k)线性分组码,我们利用交织可以把长为bλ的单个突发错误分散到λ个(n,k)码字中去,从而使每个(n,k)码字中只有长度为b的突发错误,这就提高了系统抗干扰的能力,提高了系统的纠错能力。
mcs-51单片机内