PIC单片机的多机无线通信系统设计

发布者:幸福自在最新更新时间:2012-11-27 来源: 21ic 关键字:PIC单片机  无线通信系统  通信协议 手机看文章 扫描二维码
随时随地手机看文章

     现代通信技术的迅速发展使得许多应用领域都采用无线的通信方式进行数据传输。编解码芯片PT2262、PT2272组成的电路,由于具有体积小、功耗低、功能强、成本低等特点,广泛应用于各类的无线遥控器、无线报警器以及玩具等其他小型电器装置。但是,这种电路极少用在多个字节数据的通信方面,具有一定的局限性。本文主要介绍利用433 MHz高频发射模块和接收模块来制作多机无线ASCII码格式的短信通信。该通信方式是在433MHz高频发射模块和接收模块的基础上自己定义无线传输协议,实现任意两机之间的多个字节数据通信。

1 硬件系统设计
    本系统主要由PIC16F877A单片机构成控制系统,周围4个模块分别是:按键输入模块、显示输出模块、接收模块和发射模块。系统整体结构框图如图1所示。
 
1.1 主机电路的设计
    由于系统涉及的程序量比较大,所以要求Flash程序存储器的存储量不能太小;对发射和接收的短信进行存储,要用到EEPROM数据存储器模块,EEPROM数据存储器存储的内容掉电时不会丢失;接收解码需要脉宽的捕捉和比较功能,要用到捕捉/比较/脉宽调制CCP模块;发射、接收以及时钟均要用到独立的定时器,所要求的定时器的个数不少于3个。基于设计需要,采用Microchip公司的PIC16F877A芯片作为系统的主控制器。该电路主要由主控芯片、晶体振荡电路和在线仿真接口组成,如图2所示。设计中使用MCLR、RB6、RB7三个接口作为在线仿真接口。
 
1.2 发射和接收电路的设计
    采用433 MHz高频发射和接收模块。433 MHz的高频发射电路在控制脚为高电平时起振并发射等幅高频信号,当控制脚为低电平时停止振荡。因此,可以用控制脚对高频电路完成幅度键控(ASK调制),相当于调制度为100%的调幅。当接收模块接收到433 MHz的等幅高频信号时,信号脚就输出高电平,否则输出低电平。所以接收信号脚的高低电平变化会与发射控制脚的高低电平变化相对应。多个接收模块可以同时接收到同一个发射模块发射的信号,可以实现一机发送,多机同时接收。图3所示电路是高频433 MHz载波的发射和接收模块。433 MHz的高频发射电路在控制脚B5为高平时,三级管T1导通,T2射级接地起振并发射等幅高频433 MHz的信号;当控制脚B5为低电平时,就停止振荡。因此,可以用控制脚B5对高频电路完成幅度键控(ASK调制),相当于调制度为100%的调幅。当接收模块接收到433 MHz的等幅高频信号时,信号脚就输出高电平到C2口,若未收到433 MHz的等幅高频信号则输出低电平。所以接收信号脚的高低电平变化会与发射控制脚的高低电平变化相对应。例如给B5引脚输入图4所示的波形,那么在接收模块的C2引脚上也将出现同样的波形。注意,B5和C2的控制信号分别由主控芯片PIC16F877A的RB5和RC2发出。
 
 
1.3 液晶外围控制电路的设计
    采用诺基亚3310 LCD显示模块。该LCD为84×48点阵的液晶屏,一屏可显示4×7个(12×12点阵)汉字,或6×14个(6×8点阵)英文、数字、标点符号等字符。该液晶显示器轻薄短小、低功耗电量,常用于手机显示。液晶外围电路如图5所示。[page]
 
    本设计中,诺基亚3310 LCD用3 V的电压供电。其中,1引脚是电源脚,6引脚接地线,2引脚为SCLK,3引脚为SDIN。4引脚为数据/地址选择端,分别给4引脚高低电平,可以控制单片机对诺基亚3310 LCD写数据或者写命令。5引脚为使能端,低电平有效。8引脚为复位端,低电平有效。11引脚接背光灯电源的正级,12引脚接背光灯电源的控制级。9、10引脚为诺基亚3310 LCD自带的喇叭,此喇叭用单片机来控制的声音效果并不理想,所以改用直流自带振荡蜂鸣器。为了避免蜂鸣器和背灯光工作时对液晶电源造成影响,蜂鸣器和背灯光由5 V的电源来供电,与液晶电源分开。

2 软件系统设计   
    本系统在主程序中运用模块化结构,使得各个模块之间关系清晰明了。复位分为两个部分,以区分上电复位与非上电复位,上电复位执行上电复位初始化程序;运用散转结构,再根据重要数据3比2表决,实现无扰动重入;所有控制量(开关量)和接收数据集中处理,提高了处理效率;特殊功能寄存器冗余重置,使整个系统更稳定地工作。主程序总流程如图6所示。
 

3 通信模块功能及算法
    本无线通信协议模仿OSI分层模型分为以下3层,各层之间相互独立,灵活性好,适应性强。
    (1)物理层
    物理层处于最低层,其任务是传送和接收比特流。物理层关心的问题是:如何表示“1”和“O”;如何排除干扰;传输是否在两个方向上同时进行等。本设计中使用433 MHz高频发射模块和接收模块作为无线通信桥梁,固定的频率限制了数据传输在同一时刻只能在一个方向上进行,所以两个方向上的数据传输要在交替发生的情况下才能完成。
    (2)数据链路层
    数据链路层使用由物理层提供的服务,并通过添加错误处理机制将简单的数据链路改造成可靠的数据链路,再提供给应用层。数据链路层以码字为单位传输数据,每一码字包括数据和必要的校验信息。在此自定义为无线传输协议(Wireless Transmission Protocol,WTP)。
    (3)应用层
    应用层处于最高层,它为应用进程提供了接入点,直接为用户的应用进程提供服务。在此自定义为短信通信协议(Message Communication Protocol,MCP)。
3.1 定时器T2中断模块
    中断处理采用片内CCPI中断捕捉方式,对外部接口引脚CCP上输入的脉冲信号上升沿或下降沿进行实时捕捉检测。借助于这个强大的边沿捕捉功能,很容易对信号的高电平时间进行检测,从而实现对WTP解读功能。中断服务程序流程如图7所示。[page]
 
    在解读WTP过程中只要判断出同步码,就对这一码字进行初始化,把脉冲个数计数器清O;然后每捕捉到一个高电平,脉冲个数计数器就加1并保存记录该脉冲。捕捉到一个高电平后,若高电平时间宽度为409.6~819.2μs,就认为是窄脉冲;高电平时间宽度为819.2~1 228.8μs,就认为是宽脉冲;若高电平时间宽度小于409.6μs或大于1 228.8μs,则认为该脉冲为干扰信号,当低电平时间宽度大于819.2μs时也认为是干扰信号。收到干扰信号后将脉冲个数计数器清0,并把正在接收的码字丢弃处理。当接收到25个脉冲后对前面16个脉冲进行处理,若每个位码不是由一个窄脉冲和一个宽脉冲组成的,就认为接收正常。接收正常后,通过一个接收到数据的标志位反馈到MCP(短信通信协议)上处理,通信协议会根据该标志位到接收缓存中取刚刚接收到的数值。
    一个字节的数据波形如图8所示。根据无线传输协议定义,发送的一个完整的码字由数据码、校验码、同步码组成(图中用虚线隔开这3个部分)。数据码和校验码都用宽度不同的脉冲来表示,2个窄脉冲表示“0”,2个宽脉冲表示“1”。每组字码之间有同步码隔开,同步码用一个窄脉冲和一个比较宽的低电平表示。一个字码由8位数据码、4位校验码和1个窄脉冲组成。若每个位码用2个脉冲来代表,则一个码字就是由25个脉冲组成。无线传输协议定义窄脉冲时间宽度为739.2μs,宽脉冲时间宽度为1 156.8μs,而脉冲之间的低电平时间统一为331.2μs,同步码的低电平时间宽度为5 ms。
    图8表示发送~个十六进制数“57H”,ASCII码的“57H”表示字符“W”。图中前16个脉冲表示“57H”的数据码,二进制表示为“B01010111”;中间8个脉冲表示校验码,在该协议中校验码固定定义为半个字节的“AH”,二进制表示为“B1010”;同步码则为一个时间宽度为739.2μS的窄脉冲和一个时间宽度为5 ms的低电平。
 
    该协议中从以下几个方面来提高抗干扰能力:
    ①每个码字由25个脉冲组成;
    ②每个位码用2个脉冲来表示;
    ③校验码用“B1010”(“O”、“1”间隔)来排除干扰;
    ④若数据码大于7FH,则作为无效数据处理。

3.2 发送短信模块
    这个模块实现MCP功能,编辑短信采用ASCII码格式,短信内容取值范围为ASCII码的20H~7AH,ASCII码内容可以参照ASCII码表。7CH~7FH作为特殊功能码来处理。短信内容格式要求为3个字符的“名字+内容”。例如:要给名为LZX的通信器发短信,可写成“LZX:……”。应用层的短信通信协议要求发送机发送短信顺序是:
    ①发送短信开始码(即7FH);
    ②发送短信的头3个字符(即接收者的名字);
    ③等待接收者的短信开始应答信号(即7DH);
    ④收到应答信号后开始发送短信内容;
    ⑤短信内容发完后发短信结束码(即7EH);
    ⑥等待接收者的短信结束应答信号(即7CH)。
    由于是无线发送与接收,有时会接收不到信号,所以当没有收到短信开始应答信号时就从第一步再开始执行。若执行8次依旧没有收到应答信号,就得出“无此人发送失败”的结果。若没有收到短信结束应答信号,就得出“发送中止失败”的结果,否则就显示“对方已收到”。
    因为无线发射的特点,第一组字码非常容易受零电平干扰,往往会产生误码,所以刚开始发射的短信开始码一般要发2~3次。如图9所示,发送了5个码字的数据:7FH,7FH,57H,44H,58H(分别为开始码、开始码、W、D、X,其中“WDX"’为万能名)。然后,等待接收者的短信开始应答信号再发短信内容。
 
3.3 接收短信模块
    在这个模块中实现对MCP解读功能。根据MCP,在解读中只要判断出接收到短信开始码,就将收短信的标志位置1,并开始设置一个通信超时值,然后继续接收下3个字符再与本身名字或万能名比较。应用层的短信通信协议要求接收机接收短信顺序是:
    ①一旦接收到短信开始码就进入接收短信;
    ②接收3个字符后与本身名或万能名比较,若同名就反馈应答信号,否则返回到①;
    ③继续接收短信内容;
    ④接收到结束码后反馈应答信号,若没收到结束码且通信超时则返回到①。
    在任何状态收到短信的结束码后,都会在液晶显示屏的第一行显示“receive a mess”,并以声、光形式提示收到短信,由用户手动查阅新的短信。

3.4编辑短信模块
    这个模块实现对短信的编辑,类似于手机编辑短信的模式;有单字删除键、快速删除键、全部清除键、标点符号键、输入状态大小写字母或数字的切换键,短信尾部可显示光标。因为受液晶屏幕所限,规定一条短信内容长度为70个字符,编辑时限制字数为67个字符,发送时软件上自动在短信尾部添加本机名并发送。液晶屏幕第一行显示正在编辑状态、现在的时间和大小写输入状态。在该模块中,主要是要定位好显示和编辑指针,然后对各个按键做处理。

结语
    本文阐述的设计方法集编码和解码技术、通信协议技术、抗干扰技术、编辑短信技术、液晶点阵显示技术于一体。实现任意两机之间可以互发70个ASCII码字符的短信,可以像普通手机一样编辑短信,机子可以由用户命名以区别其他机子,实现一机对一机的通信,也可以用万能名(“WDX”)实现一机对多机的通信。可以存储一条发送出去的短信,也可以存储一条刚接收到的短信和旧的短信。整个系统人机交互界面友好,类似于普通手机系统,有操作提示,易于操作。本设计中采用分层的协议可以很容易地把无线通信模块用其他性能更好的无线模块替换。

关键字:PIC单片机  无线通信系统  通信协议 引用地址:PIC单片机的多机无线通信系统设计

上一篇:浅谈PIC单片机程序设计
下一篇:基于PIC16F877A单片机设计的万年历程序

推荐阅读最新更新时间:2024-03-16 13:14

PIC单片机与PC机串行通信模块的程序设计
串口通信程序设计   (1)PC机串口中断响应函数。 (2)单片机中串口的调试程序 (1)包含必要的头文件及定义程序需要到全局变量。
[单片机]
<font color='red'>PIC单片机</font>与PC机串行通信模块的程序设计
PIC单片机软件在关机器人控制中的编程技巧
本文介绍项目是有关机器人控制的实现。控制部分采用PICl6F7X系列单片机,运用汇编语言编程,运行速度较快,能够达到系统的要求。在这里使用的大多是数字信号的控制,电机的控制只有开和合两种状态。在动作的过程中需要两只手臂、身体、头部、脚部等的协调动作。整个控制系统比较复杂,因而在PIC程序编写和空间分配方面需要注意一些问题。 1、 动作标志位的使用 在整个控制中,组合的动作很多,当所有动作定位都通过光电开关控制时,在程序编写上就有一些问题。如要求左手上升到鼓掌位、右手上升到举手位(手初始位置在最下的放下位),光电开关0有效(即为0时是挡住),到达正确位置。用简单的理解可以写成下面的程序: list P=16c73 call
[单片机]
PIC单片机常识
1、 中断子程序格式 void interrupt ***(){ if(**IF == 1) ****** ; } 所有中断子函数都用interrupt关键字,根据if中不标志位来进入哪种中断; 2、 串口中断标志位 发送与接收中断标志位是由硬件置一或清零,无法软件操作,此为与其他中断的不同;
[单片机]
通过PIC单片机设计让电风扇送出仿自然风
硬件电路及原理 要使电风扇送出仿自然风,就需要改变电风扇送风的强弱,即需要改变风扇电机的电压和电流,从而改变其转速。如图1所示,风扇插座与晶闸管TREAC相串联,改变晶闸管控制角α,即控制晶闸管导通的时间,就能使风扇电机的电压、电流发生变化。图2展示了α角和电机负载电压的关系。 Α角的变化又可通过电容C1的充放电时间的改变来实现。PIC16F84 单片机按一定规律选择电阻Rx,即可改变电容C1的充放电时间,从而改变2N2646的导通时间。改变了TREAC的导通角,达到改变电风扇送风强弱的目的。控制角α和强弱风的关系如图3所示 市电频率f=50Hz,则可得下式 α/360°=t/0.02……………(1) 根据图1所示RxC1充
[单片机]
通过<font color='red'>PIC单片机</font>设计让电风扇送出仿自然风
PIC单片机无符号BCD加法子程序
!--StartFragment-- ;******************* 无符号 BCD 加法 *************** ; ; This routine performs a 2 Digit Unsigned BCD Addition ; It is assumed that the two BCD numbers to be added are in ; locations Num_1 & Num_2. The result is the sum of Num_1+Num_2 ; and is stored in location Num_2 and the overflow carry is returne
[单片机]
PIC单片机数码管程序
#INCLUDE P16F877.inc ORG 000H GOTO A1 ORG 0CH A1 MOVLW 1;位1显示数 MOVWF 50H; MOVLW 2;位2显示数 MOVWF 51H; MOVLW 3;位3显示数 MOVWF 52H; MOVLW 4;位4显示数 MOVWF 53H; MOVLW 4;显示位数 MOVWF 40H; MOVLW B'00000001';位码 MOVWF 41H; MOVLW 50H; MOVWF FSR ;间接寻址 A2 BSF STATUS,RP0;体1 BCF STATUS,RP1; MOVLW 0; MOVWF TR
[单片机]
PIC单片机特点及不足之处解析
PIC单片机 PIC单片机系列是美国微芯公司(Microship)的产品,共分三个级别,即基本级、中级、高级,是当前市场份额增长最快的单片机之一,CPU采用RISC结构,分别有33、35、58条指令,属精简指令集,同时采用Harvard双总线结构,运行速度快,它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期,这也是高效率运行的原因之一,此外PIC单片机之所以成为一时非常热的单片机不外乎以下特点: 特点 1、具有低工作电压、低功耗、驱动能力强等特点。PIC系列单片机的I/O口是双向的,其输出电路为CM
[单片机]
<font color='red'>PIC单片机</font>特点及不足之处解析
PIC16F877A单片机在智能双电源装置中的应用
1. 智能双电源装置的简介 随着对供电可靠性的要求也越来越高,很多场合用两路电源来保证供电的可靠性。当常用电源异常,智能双电源装置能自动切换到备用电源,智能双电源装置就是这种在两路电源之间进行可靠切换、以保证供电的装置。在医院、宾馆和矿山等有广泛的应用。 智能双电源装置由开关本体和控制器两部分组成。开关本体由电机通过机械联锁机构控制常用电源的断路器和备用电源的断路器的分合,进而控制电源的切换。控制器通过对电压的采样来判断电源是否异常,如果出现异常应产生相应的切换。 2. PIC16F877A的简介 美国Microchip公司的PIC 8位单片机其生产史11年,但现在其产量已跃居世界第二位(仅次于Motoro
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved