历史上的今天
返回首页

历史上的今天

今天是:2024年09月24日(星期二)

正在发生

2020年09月24日 | 基于MSP430F5438单片机的无线环境检测系统设计

2020-09-24 来源:eefocus

  环境监测是指通过对影响环境质量因素的代表值的测定,确定环境质量(或污染程度)及其变化趋势。随着科技的不断进步,特别是计算机技术和网络技术的不断发展,环境检测由经典的化学分析向仪器与计算机和网络相结合的方式,实现f无线环境的检测。本文中设计了一个无线环境检测系统,以MSP430F5438单片机为控制核心,实际制作一个终端和2个节点,终端能从节点获取节点的环境温度和光照信息,并且节点能够实现中继转发的功能。整个系统采用OOK调制方式,收发都使用一个天线,终端发射信号时。


  将欲传输的信息通过串口输出的电平控制本振的开断从而实现OOK调制,后级使用丙类功放发射,接收端节点将天线上的信号进行放大,然后倍压检波,通过自适应比较器解调出数据,最后再向终端回传环境信息。


  1 总体方案设计

  在整个系统的设计过程中,终点和节点都需要一个主控芯片进行处理。主芯片选用MSP430F5438系列单片机。在信号调制方面采用了OOK(On.Off Keying)调制方案。在高频功放方面,采用了分立元件自制戊类放大器使用NEC公司的产品2SC3355做功放管。最后确定通信协议方案选择,设计思想足由检测终端发起一次信息阿步传输,所有的节点根据自己的编号在不同的时隙发送信息,中继节点自行搜索判断。通过一系列的选择和设汁,整个系统的结构设计如图1所示。

  


  图1 系统整体方案框图


  系统以MSP430F5438单片机作为终端和节点的主控芯片,光照探测由光敏电阻来实现,温度可由单片机内部自带的温度传感器得到。,数据的调制、接收采用串口通信,使用I/O口来控制天线的收发模式。


  2 系统的理论分析与计算

  2.1 发射机的电路分析与设计

  本地振荡采用lO.7 M谐振器以及74HC00构成的皮尔斯振荡器,同时通过门级电路还可以增大对后级丙放的驱动功率,而串121也可以通过与非门来调制信号。


  实际测量5圈,直径为3.4 em的线圈,在lO.7 MHz下测量得到电感量为1.553 uH,Q值为156。在lO.7 MHz时的损耗电阻为:

  


  得到r=0.669,所以在并联谐振下等效电阻为:

  2.2 开关状态功放输入输出匹配

  在节点上采用高效率的开关状态功放,而终端也可以使用戊类放大。设定输出功率为0.1 w。首先计算C3355的输出阻抗,假设C3355的输出功率为0.1 w,根据功放的最佳负载计算得到,我们的电源电压为Vc=3 V,设Vce=0.1V,输出功率Po=0.1 w,计算得出最佳输出电阻为

  R=

  


  从C3355的datasheet上则三极管的输出得到集电极的输出电容,故假设输出电容是15 pF,阻抗可等效为一个42Ω的电阻与一个15 pF左右的电容并联。取集电极馈电线圈的电感为10 uH兼作为输出的谐振同路,此时所需的谐振电容为22.12 pF,所以还需要在集电极到地接入一个(10~22.12)pF的电容,为了便于调谐,采用了一只5/35pF的可调电容,经过这样后,三极管输出为42n的纯阻,然后经过一个42 Ω~16.3 kΩ的三阶低通滤波器实现阻抗变换,并且使输出波形平滑(滤掉载波的高次谐波)。


  在输出端接了一个100 nF的隔直电容,这会使得输出不再是42 Ω的纯阻,所以经过PSPICE仿真,进行校准,得到最终的具体参数。

  

e3355开关状态功放


  图2 e3355开关状态功放


  2.3 接收机解调电路分析

  由于本系统采用的是OOK凋制,所以采用灵敏度高的倍压检波。当终端与节点距离较远时,为了提高接收灵敏度,所以使用了两级放大,从而在距离较远的时候也能正常检测到信号。考虑到在近距离时,在天线线圈接收处加上限幅电路。这样就保证了在近距离和远距离时都能够接收到较好的信号。但是实际上由于在很远的时候接收到的信号还是很小,这样就导致了随着距离的远近需要改变比较器的参考电平,因此采用一个RC积分保持电路,使得能检测到最大的峰值,这样就实现了自适应比较,从而在远距离时串口依然能够正确识别信号。


  为r实现天线的复用,使用一个开关电路来切换收发模式。这个开关电路使用单片机I/O口来控制高速二极管的导通与关断来实现切换的。


  2.4 通信协议分析与设计

  通信协议采用的是终端发起同步传输,各个节点根据终端的同步信息同步自己的时钟,然后在自己编号所分配的时隙内依次传输。


  信息的交换采用帧交换,每个帧由4个字节组成,结构如下图示。每一次发送或者接收都足以帧为单位。其中数据氲揍的低七位表示0~100 oC的温度,最高位表示光照的有无,1为有,0为无。


  整个通信过程如下图示,终端不断发起同步传输,每个同步传输分为信息同步发送和中继同步发送2个阶段。信息同步发送阶段收到终端同步信号的节点在分配给自己的时隙发送数据。中继同步阶段没有收到终端同步信号的节点收到相邻节点回复给终端的信息后,在本阶段自己的时隙内发送中继请求,目的ID为监听到的节点中的任意一个,由选中的节点在下一个信息同步发送阶段代替自己发送信息给终端。

  

数据帧格式


  图3数据帧格式


  为了克服各个节点定时不够精确的问题,需在每个帧之间加入保护间隔,在本协议中设计为发送一个字节的时间。


  即发送一帧数据需要5个字节的时间。因此可以计算得到满足要求最低的波特率。按照最坏情况计算,一共需要256×3A“时隙,每个时隙由5个字节之间,每个字节10个位,所以波特率大于:

  这里为了留出余量设置为9 600 bps。


  3 电路设计与软件设计

  3.1 发射电路分析与设计

  在发射电路中(见图4),我们选用74HC00,可在3 V电压下工作,74HC()o实现了lO.7 MHz的载波产生,信号调制,功放驱动为一体。功放的额定输出功率是0.1 w。


  3.2 接收电路设计

  接收电路见图5。接收机的前端采用了限幅电路,一个很小的电容(22 pF)后面接2个方向相反的二极管到地。这样就保证了在收发天线很近的时候,接收到的电压被限制在0.25 V。


  控制收发的开关电路是有2个反向串联的1N4148和一个4.7mH电感串联一个5。6k电阻到单片机的I/O口。

  

发射电路


  图4发射电路

  

接收电路


  图5接收电路


  3.3 工作流程图

  监测终端的软件重要任务就是发送同步信号,等待探测节点返回的数据。并在液晶上显示出来。探测节点的任务是定时采集数据,并在收到同步信号或者监测到其它节点的时候发送数据,并在收到中继请求后提供中继服务。图6和图7便是终端软件和节点软件的流程图。

  

终端软件流程


  图6终端软件流程

  

节点软件流程


  图7节点软件流程


  4 测试方法与数据

  测试条件为:终端供电5 V。室温为26 qc。下面进行的是终端节点通信距离的测试。

  终端、节点放置在同一水平面,在保证两天线对准的情况下,将距离分别设为1 em,9 cm。将节点A和B分别放在终端两侧,距离为10 cm,测试温度,光照,编码预置功能。测试结果如表1(均有预置编码的功能,探测延迟3 s)。


  表1测试记录

  


  下面进行的是中继节点转发测试。


  将终端与节点A的距离没为50 cm,两者不能正常通信,将节点B插入到两者中间,测试终端是否能够正常识别2个节点,然后将A,B 2个节点互换,测试足否能正常识别。测试结果如表2所示。

  


  再次测试最大转发距离,当A作为转发节点时,最大转发距离为66 cm,当B作为转发节点时,最大转发距离为80 em。


  最后进行的是节点功耗测试。

  保持D1+I)2=50 cm。测试转发节点测试。

  实测发现,2个节点都作为中继的时候,最大的电流时3 mA,平均电流在2.4 mA。


  5 测试结果分析

  温度、光照测量:温度由于采用芯片内集成温度传感器,可采用温度计对温度准确度进行测试。经过算法补偿,在23~40℃的范围内,温度准确度在2℃以内。终端与节点的通信距离最远町达35 cm。节点实现r中继转发的功能。节点的电流非常小,在3 mA以内。

推荐阅读

史海拾趣

贝特莱公司的发展小趣事

贝特莱与小米的合作是其发展历程中的又一重要事件。作为小米全系列合作伙伴,贝特莱为米家智能门锁提供了独家指纹传感器和定制算法芯片。随着米家智能门锁销量突破百万大关,贝特莱也实现了销售上的重大突破。这一合作不仅证明了贝特莱技术的成熟与可靠,也进一步提升了其在智能门锁市场的地位。

绿宝石(BERYL)公司的发展小趣事

绿宝石公司自创立之初,便致力于电子材料领域的研发。某年,公司研发团队成功开发了一种具有优异性能的绿宝石电子材料,这种材料在高频、高温等极端环境下仍能保持稳定性能,为电子行业带来了革命性的变革。随着这一技术的广泛应用,绿宝石公司在行业内逐渐树立了技术领先的形象,市场份额稳步上升。

帝特(DTECH)公司的发展小趣事

面对日益激烈的市场竞争和不断变化的市场需求,帝特始终坚持创新驱动的发展战略。公司不断投入研发资源,加强技术创新和产品升级,力求在保持传统业务优势的同时,开拓新的增长点。此外,帝特还积极布局电子专用材料项目,加强半导体芯片封装浆料研发推广,进一步优化产业结构,提升公司的综合竞争力。

以上五个故事概述了帝特(DTECH)公司在电子行业发展的主要历程和关键节点,展现了公司从创立到成长为行业领军企业的艰辛与辉煌。

HCC Industries公司的发展小趣事

2015年,HCC Industries迎来了其发展历程中的一个重要转折点。在这一年,公司成功收购了另一家具有强大研发实力和市场份额的微电子企业。此次并购不仅使HCC在技术上得到了进一步的补充和提升,还大大增强了其生产能力和市场覆盖范围。通过整合双方资源,HCC在短时间内实现了规模的快速扩张和效益的显著提升,进一步巩固了其在行业内的领先地位。

Comax Industrial Co Ltd公司的发展小趣事

为了不断提升自身的技术创新能力,Comax Industrial Co Ltd公司积极与高校、科研机构等开展产学研合作。通过与这些机构的紧密合作,公司不仅获得了前沿的技术支持,还培养了一批高素质的技术人才。这种合作模式使得公司的技术创新能力得到了显著提升,为公司的长期发展提供了有力的支撑。

东科半导体(DK)公司的发展小趣事

东科半导体(DK)公司一直将技术创新作为发展的核心驱动力。公司投入大量资金和资源用于研发,先后开发出AC/DC、同步整流、第三代半导体氮化镓芯片等先进技术。其中,东科半导体的同步整流芯片研发成功,其独特的两引脚封装技术为全球首创,为公司赢得了行业内的独家竞争优势。这一技术的成功应用,不仅提升了公司产品的性能,也进一步巩固了东科在电源管理芯片市场的领先地位。

问答坊 | AI 解惑

自动洗狗机

法国一名企业家发明了一种自动洗狗机,主人只需选定洗涤方式和宠物狗的大小尺寸,按下“开始键”后机器就会自动完成浸湿、冲洗和烘干等一系列过程。狗狗就会在半个小时内“神奇大变身”——从又脏又臭变成干净蓬松。…

查看全部问答>

模拟软键盘输入

使用keybd_event函数模拟软键盘输入一个字符,和直接使用软键盘输入是有区别的, keybd_event产生的是键盘事件,而直接使用软键盘输入,使用的是SendVirtualKey和SendCharEvents,两者不一样。 有些应用程序不接受keybd_event,而只接受直接使用 ...…

查看全部问答>

关于nandflash里的MBR的问题

最近在分析freescal 的I.Mx27的eboot的code,有个问题请请教大侠: 我在分析 函数  ReadKernelRegionFromNand()的时候在这句上想不通了 // Read kernel region info from parameters         if(BP_ReadData(hPa ...…

查看全部问答>

经典C语言书籍【英文版】

本帖最后由 paulhyde 于 2014-9-15 09:01 编辑 经典C语言书籍【英文版】  …

查看全部问答>

msp430g2553 AD多通道单次转换程序

unsigned int result[4]; void init_ADC10() {      P1SEL|=BIT0+BIT3+BIT4+BIT5;      ADC10AE0|=BIT0+BIT3+BIT4+BIT5; // 使P1.0允许AD模拟输入信号   ADC10CTL0=ADC10ON+MSC+SREF_0;// ...…

查看全部问答>

msp430 uart 接收问题

小弟在做modbusrtu通信,使用149单片机定时发送数据帧,但是接收到到数据帧怎么都一样呢? resvbuf[0]——resvbuf[8]接收到的是一样的16进制数据,不知道什么原因,还望高手给予指点!!!谢谢 #pragma vector = TIMERA0_VECTOR __interrupt voi ...…

查看全部问答>

【LPC54100】UART DEBUG

board_api.h中给出了通过USART0输出DEBUG信息的函数DEBUGOUT(),实质是重定向到串口的printf: board.c中给出了USART0的初始化配置,可以看出波特率设为115200 因此在串口工具中选择相同的波特率,数据位为8。使用新唐的牛桥连接LPC54102的 ...…

查看全部问答>

近区场与远区场的区分

本帖最后由 平漂流 于 2016-7-18 15:30 编辑 有关电磁场的近区场与远区场的划分,目前看到了3个版本,一个是小于一个电磁波波长λ的是近区场,大于一个波长的是远区场;一个是小于3个波长的是近区场,大于三个波长的是远区场;最后一个是如下图所 ...…

查看全部问答>

STM32学习第八贴,有了位带,为啥还要有其他方式操作IO口,欢迎高手来喷,来指导

本帖最后由 long521 于 2017-7-13 10:21 编辑 最近空的时候,试着用STM32来操作一些简单的例程,发现IO的高低完全可以用位带这种方式就可以了,但是为什么还要用寄存器方式,还有库函数这种方式,库函数也很方便,只要一个函数执行一下就是高,另 ...…

查看全部问答>

求大神赐一张步进电机原理图

求大神赐一张步进电机原理图…

查看全部问答>