基于SoC单片机的无线通信系统设计
摘要:本文结合凌阳单片机SPCE061A和无线通信模块PTR8000的特点,设计出了数据无线传输的通信系统.从系统的组成结构出发,分析了各个模块的基本功能及如何实现.在此基础上设计了上位机接收数据的监控软件,并给出了部分采集的数据及分析结果.
关键词:SPCE061A; PTR8000;无线通信Wuhan ,430081,Hubei Province)
Abstract: Combined with the characters of SPCE061A Singlechip and wireless communication model PTR8000 , the wireless communication system is introduced in this paper, which starts with the system structure, then analyzes the basic function of every model and how to realize them . Furthermore, the monitor software system is designed and the acquired data and the analysis results are given.
Keywords: SPCE061A; PTR8000; wireless communication.
0 引 言
数据采集是工业现场中应用最广的技术之一.如工矿企业等用电单位在生产时,需要实时监测电网中的电压值;化工部门在生产时需要实时监测物质的温度、压力、流量变化;交管部门在管理当中需要实时监控交通灯、路灯是否正常工作等.若依靠人工到现场采集数据,针对不同的部门会存在不同的问题:对于监测电压、温度、压力等部门会面临现场环境比较恶劣,人工记录会出现一定的误差,且费时、费力等问题;对于远距离采集数据的部门若通过有线方式把采集的数据传到监控室中的上位机,成本会比较高.
SoC技术是当今超大规模集成电路的发展趋势,它是一种高度集成化的系统集成技术,SoC从系统的整体功能及性能出发,把微处理器和计算机常用的一些数字和模拟外设等全部放置在一块芯片中,使它成为一个完整的数据采集与控制系统。 与传统功能单一的MCU芯片相比,SoC不仅增加了多种功能,而且减少了体积,降低了功耗,提高了系统的抗电磁干扰性和可靠性等.
本文基于SoC单片机SPCE061A设计了一种多通道数据采集系统,能够实时的采集、显示,并通过无线通信模块PTR8000,将采集的数据准确的传到远端的上位机中,利用上位机的软件进行在线监控.
1 硬件的组成结构及基本功能
本系统由核心控制模块、无线通信模块和用于在线监控的PC机三部分组成.其系统结构如图1所示.
核心控制模块是基于凌阳单片机SPCE061A实现的,其主要功能为:先将0~5v的电压信号转换成SPCE061A所能识别的0~3.3v的电压信号,单片机首先采集第一路的电压信号,经A/D转换后,进行LED显示,并将转换后的值通过模拟的SPI口传给PTR8000.当PTR8000把单片机传过来的数据发射之后,相应的状态指示灯闪烁.然后再采集第二路的电压信号,进行A/D转换,LED显示等.
无线通信模块采用的是Nordic公司生产的PTR8000,通过PTR8000,可以将现场采集的多路电压值传送到监控室,实现数据的无线通信.
PC机负责接收、处理传过来的数据,通过VC所编的上位机软件进行在线监控.
图1 无线通信系统框图
2 核心控制模块的实现
由于该系统最基本的功能之一是采集多路模拟信号并将其转换为数字信号,因此需要选用具有多通道A/D转换功能的微处理器CPU内核.该系统采用的是凌阳公司生产的一款16位单片机SPCE061A.该芯片不仅在内部已经集成了8通道10位A/D转换模块,而且还具有如下特点:工作电压为3.0~3.6 V;工作频率为0.32~ 49.152 MHz;2 K 的SRAM 和32 K的FALSH ROM;32位可编程的多功能I/O 端口;2 个16位定时器/计数器;32 768 Hz实时时钟;内置自动增益控制功能的麦克风输入方式;双通道10位DAC方式的音频输出功能;通用异步全双工串行通信接口UART;串行设备输入输出接口SIO,可与外围设备进行串行数据通信等.该芯片不仅功耗低、工作电压范围大,且具有较高的处理速度[1]。此外,厂家提供的编程环境支持C语言和汇编语言的程序设计,以及C语言与汇编语言的混合编程,大大方便了用户的程序设计,提高了系统开发效率.
核心控制模块软件流程如图2所示,其中(a)为主程序(以两路AD为例);(b)为一路AD转换子程序.
2.1 A/D转换
SPCE061A有8路可复用10位ADC通道,其中一路通道(MIC_IN)用于语音输入,其余七路通道(Line_IN)和IOA0~IOA6引脚复用,用于将输入的模拟信号转化为数字信号,由于通常我们所采集的标准电压信号是0~5V,而SPCE061A能够转换的电压范围只有0~3.3V,所以该系统通过采用分压的方式把0~5V的电压信号转变成0~3.3V的电压信号.
2.2 LED显示
通过CD4511扩展输出口,数码管交替的显示多路电压值,在每一次的显示当中,都会显示相应的路数和电压值.
2.3 模拟SPI口通信
由于PTR8000的接口是SPI口,而SPCE061A没有标准的SPI口,只能通过模拟SPI口来实现数据的传输.而模拟SPI口的关键点在于模拟SPI的读写时序,单片机只有在正确的时序下对PTR8000进行配置后,PTR8000才能正常工作。其读写时序为:当CSN从高电平变为低电平时,SPI口开始等待一条指令,当SCK从高电平变为低电平时,单片机往PTR8000中写或者从中读取一位数据.
图2 核心控制模块流程图
3 无线通信模块的实现
无线通信模块采用的是Nordic公司生产的PTR8000.该芯片具有三大功能模块:模式控制(TX_EN、TRX_CE、PWR);SPI接口(CSN、SCK、MOSI、MISO);状态输出接口(CD、AM、DR).在配置模式下,单片机通过SPI接口配置PTR8000的工作参数.在发射/接收模式下,单片机通过SPI接口发射和接收数据[3]。并通过DR的输出状态来检测是否发射/接收成功,由于篇幅有限,这里只给出接收端的流程,如图3所示.
4 上位机软件的应用
当PC机接收数据时,通过串口精灵可以显示转换的电压值,但是不直观。鉴于此,该系统用VC编了一个串口通讯程序,可移植性强.
5 数据采集与分析
由于电压采集模块本身具有一定的阻值,所以采集的电压值小于实际的电压值,本系统利用软件,将采集的电压值乘以一个系数(多次实验结果为1.03),使采集的电压接近实际的电压值.由于篇幅有限,这里仅以第一路采集的电压为例,如表1所示.
表1 A/D转换对照表 电压单位:v 时间单位:s
| 0 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | ||||||||
实际电压 | 4.982 | 4.472 | 4.040 | 3.464 | 2.992 | 2.504 | 1.990 | 1.538 | 0.996 | ||||||||
显示电压 | 5.0 | 4.5 | 4.0 | 3.5 | 3.0 | 2.5 | 2.0 | 1.5 | 1.0 | ||||||||
接收电压 | 4.98 | 4.47 | 4.03 | 3.46 | 2.99 | 2.50 | 1.98 | 1.53 | 0.99 |
进入配置模式 |
图3 接收模块流程图
6 结束语
本系统通过对凌阳单片机SPCE061A和Nordic公司生产的PTR8000无线通信模块的应用,设计出了一套多路数据采集及无线传输的通信系统.该系统功耗低、体积小、运行可靠.本文叙述了数据采集的基本控制电路和原理,并用0~5V的信号完成了模拟实验,实际应用中,来源于传感器.
参考文献:
[1] 罗亚非等编著.凌阳16位单片机应用基础[M].北京:北京航空航天大学出版社,2005
[2] 陈伟,陈法国,王世勋.无线数据通信技术在TPMS中的应用.武汉理工大学报[J],
2005, 27:241~244
[3] PTR8000.pdf.讯通科技.www.freqchina.com
[4] nRF905.pdf.讯通科技.www.freqchina.com
[5] 丁立波,江小华,张河.基于无线数字传输技术的数据采集系统设计.无线发送/接收IC芯片及其数据通讯技术选编(2)[M]:168~171
[6] 任兴明. 单片机在数据采集和监控通讯终端中的运用[J]. 微计算机信息,2001
创新点:基于SoC系列单片机SPCE061A设计了一种多通道数据采集及无线通信系统,该系统功耗低、体积小、电路结构简单,传输数据的误码率低
评论