基于通信芯片SI4432和μC/OS-II操作系统实现无线通信系统的设计

引言
随着信息技术的飞速发展,短距离无线通信技术的应用已经越来越广泛,硬件低成本,协议简单的无线通信系统越来越受到欢迎。现有的一些通信技术包括wifi和uwb,wifi是一种无线网络通信技术,可以改善基于ieee802.11标准的无线网络产品之间的互通性。uwb(ultra wideband)是一种无载波通信技术,它利用纳秒至微微秒级的非正弦波窄脉冲传输数据。但采用这些方式其硬件成本较高,协议相对复杂。本文采用基于通信芯片si4432设计的无线通信系统,不仪通信质量好,而且成本低和开发难度低,可应用于无线通信、智能控制等领域。
1 、系统网络结构
本方案采用分布集散数据采集控制系统结构,如图1所示,由一个控制工作站(主操作台)、多个无线监控网关和多个无线控制节点组成。无线控制节点(即用户所使用的设备和无线i/o模块)通过无线监控网关与控制工作站通信。
2、 无线通信系统总体设计
该系统用lpc2103微控制器控制si4432实现数据收发,系统软件采用μc/os-ii嵌入式操作系统。μc/os-ii采用的是可剥夺型实时多任务内核,该通信系统将分解成若干任务,实现模块化设计。串口接收任务将数据写入发送缓冲区,发送任务从发送缓冲区取得数据并将数据传输给si4432进行编码处理,并以特定的格式经天线发送给接收模块。接收任务负责接收来自si4432的数据,并将数据写入接收缓冲区,串口的接收任务将数据传到pc机或其他设备。无线收发模块的硬件结构如图2所示。
3 、系统硬件设计
主控芯片采用飞利浦公司生产的lpc2103芯片,lpc2103是基于arm7tdmi-s cpu的微控制器,由于内置了宽范围的串行通信接口(范围从多个uart、spi和ssp到两条i2c总线)和8 kb的片内sram,非常适合通信网关和协议转换器应用,可以通过内置spi控制器对si4432的内部寄存器进行读写操作,根据实际情况配置各项参数。通过spi接口完成对si4432的各种配置和操作,如初始化配置、读写数据、访问fifo等。mosi和miso用于实现lpc2103到si4432的双工传输;sck用于串行数据传输的同步;nsel作为片选信号。spi接口示意图如图3所示。
4、 系统软件设计
采用μc/os-ii作为操作系统,该系统将分解成几个任务:系统初始化任务、si4432发射任务、si4432接收任务、读缓冲区任务、写缓冲任务。软件合理设定任务的优先级,μc/os-ii是基于优先级调度执行的。
4.1 系统初始化任务
系统初始化任务包括目标板初始化、spi接口初始化、si4432初始化。
4.1.1 目标板初始化
目标板初始化主要是定时器0初始化和注册定时器0中断服务程序。μc/os-ii要求提供时钟中断以实现延时与超时控制功能,多任务系统启动以后,也就是涮用osstart()之后第一件事就是初始化定时器,定时器0初始化:
4.1.2 spi接口初始化
为了使lpc2103与si4432能更高速地进行双向数据传输,将前者配置为spi主机模式后者为从机模式。由于si4432的所有配置都是通过spi接口进行的,配置的恰当与否对系统最终的通信效果有很大的影响。spi初始化为主机,部分程序如下:
4.1.3 si4432初始化
si4432主要是自组织协议设计和一些寄存器配置。自组织协议格式如图4所示。
其中,pre表示前导码,这些字符杂波不容易产生,通过测试和试验发现,噪声中不容易产生0x55和0xaa等非常有规律的信号,因此前导码采用0x55aa;sync(同步字)在前导码之后,本系统设定的同步字为2b,同步字内容为0x2dd4,接收端在检测到同步字后才开始接收数据;本系统不需要tx header(帧头);data表示有效数据;crc表示检验位,说明采用何种校验方式,可避免接收错误的数据包;si4432内部集成有调制/解调、编码/解码等功能,pre、sync和crc都是由si4432自动填充,用户只需设定数据包的组成结构和有效数据即可。
4.2 si4432发射任务
发射任务在lpc2103、spi和si4432的初始化后。配置寄存器使其进入发射状态,然后读取发射缓冲区(缓冲区就是一个静态队列数据结构)数据到txfifo里,当数据包发送完时,si4432产生中断,引脚nirq拉低从而通知lpc2103数据包发送完毕,lpc2103读取该中断信号从而释放si4432的nirq引脚,以便接收下一次中断的产生。
无线监控网关会根据所要传递到特定网关而切换到特定的信道,下面的子网关则使用特定的信道。无线发射流程图如图5所示。
4.3 si4432接收任务
当接收任务检测到lpc2103的p0.16引脚被拉低时,首先关闭si4432接收,然后读取其状态寄存器释放nirq,判断数据包接收中断和检测该包是否有效。如果crc也正确,lpc2103读取rxfifo中的数据,将其写入接收缓冲区(静态队列数据结构)。数据接收完毕后,清除rxfifo打开接收使系统进入下一次数据通信,无线监控网关会监听所有的信道,而下面的子网关则使用特定的信道。无线接收程序流程如图6所示。
4.4 读缓冲区任务和写缓冲任务
读缓冲任务主要是读取si4432写到缓冲区的数据,传送到串口,以便传输到pc或其他设备;写缓冲区任务主要是把pc或其他设备准备发射的数据由串口写入到发射缓冲区,由发射任务发射出去。
结语
本文设计了一种基于si4432的无线通信平台,此通信平台采用μc/os-ii和lpc2103作为操作系统和微控制器,通信的直线距离可达600~800 m,在建筑物内通信质量亦能得到保证,该通信平台能够应用于多种场合。


SpaceX已着手建造其第一个海上太空港
大数据与新基建共绘智慧城市广阔新蓝图
影响SMT组装产品质量的原因及提高SMT装配质量的有效措施
Amkor Technology看重中国封装测试市场
感恩节送啥?当贝D3X投影仪、按摩椅等这份用心礼物单请收下
基于通信芯片SI4432和μC/OS-II操作系统实现无线通信系统的设计
记一次由窗函数引发的问题
使用拉力试验机时需要注意哪些问题
币圈及时通讯系统,币圈直播聊天系统开发,数字资产抵押平台开发
合肥发布“微显示产业生态链建设方案”,打造新型微显示产业生态集群
JCVM中栈与帧的研究和设计
电子管如何实现放大
可见光通信技术对于智能家居有什么好处
2019年中国制造业在全球产业链中的占比接近30%
真智能硬件时代正在到来 家电智能化要如何闯关
乐视网被强制执行超3322万
晶圆级封装技术的现状、应用和发展研究
LCR数字电桥的原理是什么?LCR数字电桥是用来干什么的?
微电网系统可帮助建筑达成WELL照明规范的智能照明控制
显示器提供背光的高亮度发光二极管和SEPIC电源模块-Dis