让找料更便捷
电子元器件
采购信息平台
生意随身带
随时随地找货
一站式电子元器件
采购平台
半导体行业观察第一站
本词条由华强电子网用户提供,如果涉嫌侵权,请与我们客服联系,我们核实后将及时处理。
关键词:
单片机数据编解码在利用单片机和无线数传模块进行无线数据通信时,通常的办法是通过单片机的串行I/O口来完成数据的串行通信。然而方法存在许多不足之处,如差错检测能力差、帧格式不灵活等。针对低速通信的场合,提出了一种通过单片机和无线数传模块以软件方式实现对传输数据编码、解码的原理和方法。
解码的思想是:首先进行同步头的判定,然后采用“测三取二”的法判断数据位,得到每帧的16 位数据,最后对得到的数据进行CRC 校验。
(1) 同步头的判定
首先对单片机的RXD 端( P3. 0) 进行连续采样,从P3. 0 引脚变低时开始计时,若低电平的时间达到1. 3 T ,则认为该电平为同步头。因为用无线数传模块得到的信号波形一般为梯形,所以接收到的实际高低电平宽度可能变小,因此若接收到低电平宽度达到1. 3 T ,则可近似认为该电平为某数据的同步头。
(2) 数据位的判定
对每个数据位的判定采用“测三取二”的方法,既将每个数据位的前半部分成16 个状态,在第7 、8 、9 状态检测P3. 0 引脚上的电平,取其大于等于2的相同值作为测得值,如表1 所示(表中“ x ”表示“0”或“1”) 。此检测方法是在高电平或低电平的中间位置进行采样,既提高了采样准确度又有一定的滤波功能。
(3) 循环冗余校验
对解码得到的16 位数据进行循环冗余校验,若余数为零,则认为传输正确,否则进行出错处理。