APP下载

基于CC1200的嵌入式无线数据通讯系统的设计

2015-02-20利明杨秀芳陈剑虹

西安理工大学学报 2015年2期
关键词:误码率数据包通讯

利明, 杨秀芳, 陈剑虹

(西安理工大学 机械与精密仪器工程学院,陕西 西安 710048)

基于CC1200的嵌入式无线数据通讯系统的设计

利明, 杨秀芳, 陈剑虹

(西安理工大学 机械与精密仪器工程学院,陕西 西安 710048)

设计了一种基于TI公司2013年推出的射频芯片CC1200和嵌入式芯片STM32F407的无线数据通讯系统,介绍了STM32的SPI接口控制CC1200收/发信号的驱动的设计与实现,分析了STM32的SPI接口与CC1200的硬件连接,探讨了系统的初始化和点对点之间通讯程序的编写,最终实现了100 kbit/s的500 m短距离无线数据通讯,并将发送-接收-判断-发送-接收时间控制在0.5 s内。该系统具有功耗低、速率高、体积小、通讯质量高的特点。

CC1200; 短距离无线通信; STM32F07; SPI

信息通信领域中,近些年发展最快、应用最广的就是无线通信技术。而且无线通信技术又有着集成化、低功耗、易于操作的发展趋势。无线通信技术已经广泛应用到人们的生活和工作中,例如收费站中的刷卡技术,智能家居中的无线通讯系统[1]等等。目前,很多公司都在不断完善本公司的前期产品,这就使得无线通信模块不断地推陈出新[2-3]。

本文设计了一种基于最新型无线收发芯片的无线通讯系统,采用了TI公司于2013年新推出的一款射频芯片CC1200,相较于1 GHz以下的射频芯片CC1100, CC1200的最大传输速率可达1 250 kbit/s,支持多达6种调制方式。本文设计的是一款传播速率很高的无线通讯设备,能够在100 kbit/s的速率下进行工作,在500 m通讯距离时能够保证通讯质量(即误码率在0.1%以下)。

1 射频芯片CC1200

CC1200是TI公司于2013年7月推出的一款Sub-1 GHz 收发器。具有业界领先的覆盖范围与共存性,专门针对高级电表基础设施(AMI)及家域网(HAN)的1 GHz以下无线连接而开发,可充分满足智能电网、家庭楼宇自动化以及告警与安全系统应用需求。

CC1200是一款性价比很高的高性能射频芯片,它具有体积小(32 pins、QFN、5 mm×5 mm)、极低功耗(TX/915 MHz/+14 dBm/46 mA,启动时间为0.24 ms,空闲时间电流为1.5 mA)和极低的供电电压(2.0~3.6 V)等优点。所有的滤波器都是内部集成,不再需要昂贵的外部SAW和IF滤波器。该芯片在接收和发送中,最高数据传输速率可达1 250 kbit/s、最高输出功率可达到+14 dBm,可工作在169/433/868 /915/920 MHz的ISM/SRD频带,并可能支持137~160、205~240及274~320 MHz等其它频带。该芯片具有极好的接收灵敏度:在1.2 kHz时可达到-123 dBm、在50 kHz时可达-110 dBm。该芯片具有128字节的RXFIFO和TXFIFO。

2 主控芯片STM32F407

STM32F407是采用最新的ARM内核Cortex M4的嵌入式带有浮点运算能力(FPU)的处理器,常用于控制和信号处理的数字控制。该控制器增加了信号处理功能,提高了运行速度,具有32位多重AHB总线矩阵和多通道DMA控制器等多种功能。它的集成度高,功耗低(睡眠、停止以及待机模式),内部有最高可达1 MB Flash和192 KB SRAM,工作频率最高为168 MHz,外部晶振频率可选4~26 MHz,内部具有32 kHz的RC校准频率。Debug模式:串口调试SWD和JTAG接口。STM32F407最高可达140个I/O端口并带有中断功能,3个I2C接口,4个USART和2个UART接口(10.5 Mbit/s,ISO 7816 接口)、3个SPI接口和2个CAN接口[5-6]。

3 无线射频收发系统设计

3.1 系统总方案

无线射频收发系统的结构框图如图1所示,由STM32F407构成控制核心,控制CC1200实现数据的无线收发。本次设计在接收端接收到数据后对这组数据进行处理,然后将处理的结果返回给发送端,发送端通过接收端返回的数据来判断接收端是否正确地接收到数据,如果没有正确地接收到数据则对上一组数据重新发送,直到接收端接收到正确的数据。通讯频率设定为920 MHz。

在STM32F407和CC1200之间的通讯方式采用SPI通讯协议[5],用于完成STM32F407对CC1200的初始化配置、数据的读写以及FIFO的访问等操作。STM32F407选用SPI3作为与CC1200的通讯接口。考虑到高频信号的干扰,对射频部分的硬件部分进行独立设计。

通过SPI对CC1200进行寄存器的读/写时序如图2所示。

3.2 软件设计

软件开发用Keil Uvision4,编程语言采用C语言。系统之间的通讯采用主从结构,主站对从站进行询问,当从站接收到来自主站的询问信号时,从站做出回答并接收来自主站的信息。设计中给每个从站和主站编写相对应的地址编号,只有当主站点名通讯的从站时,相对应地址的从站才会与主站进行通讯[7]。

本设计采用可变包长度的模式,即在建立数据包时按照图3来建立。在CC1200的内部,存在着一个用于管理各个状态之间进行切换的状态机。在CC1200工作过程中,可以通过读MARCSTATE寄存器来获得当前射频芯片当前的工作状态。

图3 标准的数据包格式
Fig.3 Standard packet format

图3中,前导码表示的是一组前导字,同步字表示数据包中设置的同步字,长度则表示发送数据的长度(包括地址位和数据信息位)。其中,地址表示接受方的地址编号;数据信息就是用户要传输的数据内容,CRC16是最后的数据校验,它是由CC1200在发送完前边的数据后自动添加到数据包的最后。在这里要提到的是,通过配置相应的寄存器CC1200会自动在数据信息的添加2个字节的数据,这2个字节的数据表示CRC、LQI和RSSI。

3.2.1 初始化程序

初始化程序包括对STM32F407、CC1200的各项配置以及STM32F407对CC1200驱动的初始化,对CC1200的初始化包括各个寄存器的配置。为了获得最佳的通讯性能,有些配置必须经过复杂的计算才能获得,在这里笔者使用Chipcon公司提供的SmartRF Studio软件对相关的寄存器进行配置。对于一些软件中没有提到或者没有满足用户要求的配置,用户可以根据数据手册的相关内容自己再进行配置。

这里STM32F407对CC1200驱动,主要就是通过SPI3接口来驱动CC1200。

3.2.2 无线通讯流程

由于采用询问-回答的方式进行无线数据通讯。所以在本次设计的编程中,发送程序只执行一次,然后会转换到接收状态,这在编程时就要特别注意时序的问题以保证信息能够完整地被接收到,也就是当发送端发送完数据,接收端应该处于接收状态,接收端在返回信息时发送端应该处于接收状态。

当数据包发送完成后,GPIO2会产生一个先上升后下降的信号,STM32F407以此来判断CC1200是否完成了数据的发送。无线数据发送流程如图4所示。

在接收过程中,只有接收到的地址位的数据与接收方本身配置的地址匹配,它才会继续接收后边的数据并将其存入到RXFIFO中,当接收完成后,GPIO2会给STM32F407发送一个先上升后下降的中断,告诉STM32F407接收方的CC1200已经完整地接收到一组数据。无线数据接收流程图如图5所示。

3.2.3 模拟串口的使用

模拟串口采用SSCOM3.3软件,这款软件是一个绿色软件,只需在上位机中安装其对应的驱动程序,然后直接打开该软件进行对应参数的设置即可使用。在本实验中对其参数设置为:波特率为115 200,数据位为8,停止位为1。

4 系统测试与分析

为了验证本设计的可靠性,进行了以下两个实验(频率为920 MHz,传输速率为100 kbit/s)。

1) 在一处空旷的地方,通讯距离为100 m进行无线数据的点对点之间的通讯。其实验结果如图6所示。

从图6可以看出,本次设计的无线数据通讯系统在进行短距离的点对点通讯时是可以进行可靠工作的,可以按照用户的意愿来进行工作。

2) 通讯距离的测试,还是两个系统之间进行通信,通讯距离依次设定为50 m、100 m、200 m、300 m和500 m,分别进行3次实验,每次实验发送17 000字节的数据。实验结果如表1所示。

表1 100 kbit/s速率不同距离误码率

Tab.1 Error rate of different distance based on 100 kbit/s

说明:300 m的误码率按照常出现的错误字节12个计算;500 m的误码率按照常出现的17个错误字节计算。

由此可知:在传输速率为100 kbit/s时,距离较近时,误码率为0,在较远距离时误码率最高为0.1%。因此,该无线射频收发系统能够实现短距离、高速率、低误码率的通信要求。

以后将在800 m距离、空旷环境下,对本系统再进行实验。以到达更远距离的数据通讯。

3)在发送端对时间进行测试,采用STM32F407的TIM2作为计时器,其频率设定为8 MHz,每次发送32个字节的数据包。

得出发送机从发送到接受到返回的正确数据时间为2f3bd(十六进制),则将其转换为十进制为193470,即所用时间:

t=193470/8000000=0.024 183 75 s

5 结 语

本次设计的无线数据通讯系统能在高速率的情况下完成500 m距离的数据通讯,保证了很好的通讯质量,在此前提下,完成发送-接收-判断-发送-接收,时间保证在了0.5 s之内,本系统具有体积小、功耗低以及性能高等优点。

[1]闵丽娟,卢捍华,陈玲,等.智能家居的系统结构及相关无线通信技术研究[J].计算机技术与发展,2011,21(8):169-172.

Min Lijuan,Lu Hanhua,Chen Ling,et al. Research of architecture of smart home and related wireless communication technology[J]. Computer Technology and Development, 2011,21(8):169-172.

[2]冯莉,董桂梅,林玉池. 短距离无线通信技术及其在仪器通信中的应用[J].仪器技术与传感器,2007,(2):31-32.

Feng Li , Dong Guimei, Lin Yuchi. Application of short-distance wireless communication to instruments communication[J]. Instrument Technique and Sensor, 2007,(2):31-32.

[3]江和,张培铭,翁桂华. 基于无线通信的高压设备温度监测系统的设计[J].仪器仪表学报,2009,30(9):1969-1975.

Jiang He,Zhang Peiming, Weng Guihua. Design of temperature monitoring system for high-voltage equipment based on wireless communication[J]. Chinese Journal of Scientific Instrument, 2009,30(9):1969-1975.

[4]邓专,陈维,王春麟. 射频收发芯片CC1100及其应用[J].机械工程与自动化,2007,(12):168-169,172.

Deng Zhuan, Chen Wei, Wang Chun-lin. RF transceiver chip CC1100 and its application [J]. Mechanical Engineering & Automation,2007,(12):168-169,172.

[5]李波,袁霞. STM32和CC2520的TinyOS移植与驱动分析[J].单片机与嵌入式系统应用, 2012,12(11):35-38.

Li bo, Yuan Xia. TinyOS transplant and driver analysis based on STM32 and CC2520[J]. Microcontroller and embedded systems applications,2012,12(11):35-38.

[6]袁安富,徐金琦,王伟,等.基于双STM32多旋翼无人机控制系统设计[J].电子技术应用,2013,39(11):136-138.

Yuan Anfu, Xu Jinqi, Wang Wei,et al. Control system design for multi-rotor unmanned aerial vehicle based on dual STM32[J].Applications of Electronic Technique, 2013,39(11):136-138.

[7]王俊荷,高飞,吴节林. 基于CC1100点对点无线数据采集[J].计算机科学,2011,38(10):212-214.

Wang Junhe, Gao Fei, Wu Jielin. Point to point wireless data acquisition based on CC1100[J]. Computer Science ,2011,38(10):212-214.

(责任编辑 王卫勋)

The design of embedded wireless data communication system based on CC1200

LI Ming , YANG Xiufang, CHEN Jianhong

(Faculty of Mechanical and Precision Instrument Engineering, Xi’an University of Technology, Xi’an 710048, China)

In the paper, a wireless data communication system is designed based on TI's 2013 launch of the RF chip CC1200 and embedded chips STM32F407 and the design and implementation of driver and the hardware about STM32 SPI interface control CC1200 transmit/receive signals are introduced. This wireless data communication system achieves low power consumption, high data rate,small size, high quality. The programing of Initializing System and point-to-point communication has been discussed. Ultimately, the 500 m short-range wireless data communication has been achieved at 100 kbit/s. The send-receive-judge-send-receive time has been controlled within 0.5 s.

CC1200; short-range wireless communication; STM32F07; SPI

1006-4710(2015)02-0248-05

2014-12-20

陕西省教育厅科研计划资助项目(2013JK1049)。

利明,男,硕士生,研究方向为光电检测。E-mail:highli@qq.com。

杨秀芳,女,副教授,研究方向为光电测试及数字信号处理技术。E-mail:yxf5078@163.com。

TN919.72

A

猜你喜欢

误码率数据包通讯
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
二维隐蔽时间信道构建的研究*
面向通信系统的误码率计算方法
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
一种快速同步统计高阶调制下PN 码误码率的方法∗
浅谈数字通信系统中误码率的估计方法
C#串口高效可靠的接收方案设计
通讯简史