历史上的今天
今天是:2025年01月13日(星期一)
2021年01月13日 | 关于LPC2103和SI4432的无线通信系统设计
2021-01-13 来源:21ic
摘要:目前大多数无线通信设备通信距离近,硬件成本高,设计复杂。本设计采用基于微功率通信芯片SI4432、LPC2103微控制器和μ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初始化:


μC/OS-II中的时钟节拍服务是通过在中断服务子程序中调用OSTimeTick()实现的,OSTimeTick()跟踪所有任务的定时器以及超时时限。

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,在建筑物内通信质量亦能得到保证,该通信平台能够应用于多种场合。
史海拾趣
|
Jane Wu HeadhunterConsultant Tel:021-5080 3084 Cell:13482444994 Email:jane.wu@zhangjianghr.com.cn MSN:janewu2009@163.com www.zjpark.com www.shrc.com.cn www.zhangjianghr.com.cn 职位表 ...… 查看全部问答> |
|
哥们收集的几个MP3的方案原理图,有ALIM5661X(俗称阿里方案)/炬力ATJ2055/ATJ2091/ATJ2135/凌阳SPDA1000/瑞星微2608A,有需要的朋友来看看吧,欢迎补充.....… 查看全部问答> |
|
虚拟FPGA逻辑验证分析仪的设计 随着FPGA技术的广泛使用,越来越需要一台能够测试验证FPGA芯片中所下载电路逻辑时序是否正确的仪器。目前,虽然Agilent、Tektronix 等大公司生产的高端逻辑分析仪能够实现FPGA电路的测试验证功能,但此类仪器价格高 ...… 查看全部问答> |
|
在CPU i.MX27 WinCE5.0环境下,有二个SDIO SD Host Controller 1 {B7C507E8-8B78-4CFC-870A-2BC4F4050519} SD Host Controller 2 {FD150420-C2DF-44B8-9FA2-AA9FD8CDA40E} SD Host Controller 1 可正常使用, 想使用SD Host Controller 2, ...… 查看全部问答> |
|
1、 // show Camera // dwLenIn = 1 : Normal overlay // dwLenIn = 4 : Alphablending // &n ...… 查看全部问答> |
|
该外设为AD9516时钟芯片,通过FPGA配置出不同的时钟输出。现在我只实现了基于FPGA的SPI接口,但是,如何像单片机一样来对SPI设备发起读写操作?请高人指点啊!谢谢!… 查看全部问答> |
|
最近想做的东西,需要集成以太网控制器和PHY的低成本芯片,TI LM3S有不少,但我对这个系列不熟,想请大家推荐一款性价比高的,价格低,国内货源比较稳定的片子。最好具有DMA功能我原先看了LM3S6911这款,但可惜没有DMA功能,优点遗憾… 查看全部问答> |
|
收到板子都有一个月了,居然没啥进展 ,懒惰果然是贪婪的大敌 。 现在把板子翻出开始折腾。 手里有个nokia5110的LCD想用launchpad驱动,该屏是spi驱动的,很适合IO少的MCU。物美价廉。 看一下spi,2231的spi是在USI里面 ...… 查看全部问答> |




