首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 基于单片机的多机无线短信通信系统设计(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于单片机的多机无线短信通信系统设计(2)
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2015-10-23 11:19
|
只看该作者
基于单片机的多机无线短信通信系统设计(2)
单片机
,
短信
,
通信
,
无线
(3)应用层
应用层处于最高层,它为应用进程提供了接入点,直接为用户的应用进程提供服务。在此自定义为短信通信协议(Message Communication Protocol,MCP)。
3.1 定时器T2中断模块
中断处理采用片内CCPI中断捕捉方式,对外部接口引脚CCP上输入的脉冲信号上升沿或下降沿进行实时捕捉检测。借助于这个强大的边沿捕捉功能,很容易对信号的高电平时间进行检测,从而实现对WTP解读功能。中断服务程序流程如图7所示。
在解读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”)实现一机对多机的通信。可以存储一条发送出去的短信,也可以存储一条刚接收到的短信和旧的短信。整个系统人机交互界面友好,类似于普通手机系统,有操作提示,易于操作。本设计中采用分层的协议可以很容易地把无线通信模块用其他性能更好的无线模块替换。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电源与功率管理
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议