单片机数据编解码原理
单片机数据编解码原理
单片机数据编解码在利用单片机和无线数传模块进行无线数据通信时,通常的办法是通过单片机的串行I/O口来完成数据的串行通信。方法存在许多不足之处,如差错检测能力差、帧格式不灵活等。针对低速通信的场合,提出了一种通过单片机和无线数传模块以软件方式实现对传输数据编码、解码的原理和方法。
编码原理
数据的编码采用了曼彻斯特编码格式,每帧数据由同步头、有效数据位和校验位三部分组成。其中数据位“1”由高到低的跳变表示,数据位“0”由低到高的跳变表示,而且数据位“1”和“0”高低电平周期各为0. 5 T (设T 为一个数据位宽度) 。根据曼彻斯特码的特点,每个数据位都由高低电平组成,因而在连续传输的有效数据位中不会存在超过一个数据位宽度的高电平或低电平,在每个数据的前面设一个同步头,高低电平各为1. 5 T 。这样在进行接收数据时,只要采样得到的电平满足1. 5 T ,则认为该电平是同步头,开始接收数据。因为寻找同步头的时间最长不会超过一个数据的长度,所以此编码方式非常适合于要求多路进行快速切换的场合。
解码原理
解码的思想是:进行同步头的判定,然后采用“测三取二”的法判断数据位,得到每帧的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 位数据进行循环冗余校验,若余数为零,则认为传输正确,否则进行出错处理。
热点新闻
- 杨志刚主演的电视剧 黄海波杨志刚主演的电视剧
- 罗志祥事件是怎么回事 罗志祥事件来龙去脉怎么
- 刘德华老婆朱丽倩图片 朱丽倩年轻时到底多漂亮
- 姚笛文章怎么回事 姚笛文章现状
- 杨颖有没有整容 杨颖整容了没有
- 罗志祥前女友 罗志祥前女友叫啥
- 李维嘉结婚了吗 李维嘉已婚吗
- 黎耀祥电视剧 马浚伟黎耀祥电视剧
- 黄牛党是什么意思 黄牛党现象的剖析
- 红色高棉是什么 高棉红色是扶植出来的.txt
- 好看的激情片推荐 让你的夜晚充满热情与感动
- 金钟国宋智孝美国结婚 金钟国宋智孝有可能在一
- 贾乃亮与李小璐的最新情况 贾乃亮和李小璐到底
- 韩红和管彤婚纱照 韩红和管彤结婚照片集
- 哈妮克孜被大佬玩的视频知乎 哈妮克孜大佬事件
- 乖乖女是大明星2 乖乖女是大明星百度网盘