股票代码
831762
0573-82229995
首页 > 公司新闻 > 行业动态
m6米乐网页版
依据STM32和SIM900A的无线通讯模块规划与完结
发布日期:2022-05-11 16:00:14 来源:m6米乐网页版

  摘要:针对厂方提出的规划一个能够完结短信收发与数据无线传输的模块的要求,本文选用了ARM CortexM3内核的主流产品STM32作为主控芯片,选用SIMCom公司的模块。该模块在实验室试运转一周后,没有呈现掉线的状况,数据收发的速度也很快。该模块具有功用安稳,外形细巧,性价比高级长处。厂方投入运用之后,反响杰出。

  跟着网络和现代通讯技能的不断发展,长途无线通讯技能经过多年的研讨与实践运用,现如今在工业操控范畴有了非常重要的方位,而且发挥着越来越大的效果。文中依据厂家的要求,规划的无线通讯模块,首要完结了短信与数据收发功用,而且做到了模块的安稳,掉线之后能够主动重连。

  模块首要有电源部分、主控部分、通讯部分、数据传输部分4个部分组成。通讯模块选用SIM900A进行无线通讯。主控模块选用STM32作为主控芯片,来操控短信的收发与数据传输的顺利进行。长途终端可所以手机或许上位机的数据中心软件,经过处理之后,贮存下来,便利日后的查询。本模块具有低功耗,便利灵敏,操作简略而且安稳,掉线之后能够主动衔接,运转进程非常安稳,而且本钱较低。

  本文规划的无线V电源输入,模块上电运转后有相应的指示灯来指示模块的运转状况。别的要求模块能够完结短信以及数据透传两大首要功用,在手机发送短信给模块之后,模块能够动作,并给出回应。最终要求在树立TCP链接时,依然能够收发短信。

  的作业电压为3.1~4.6 V,为使模块各个部分正常作业,有必要对两者进行别离供电,电源供电电路如下:图中V12外接12 V电源,经过电容滤波后输入到LM2576,完结12 V到4 V的转化,R1、R2在线灯亮起时,表明模块现已正常供电。LM2576是美国国家半导体公司出产的3 A电流输出降压开关型集成稳压电路,具有完善的维护电路,比较安稳。

  主控模块选用STM32单片机作为微操控器,该芯片能作业于-40~105℃的温度规模,MAX3232芯片用于串行口的电平改换,完结操控器与通讯接口之间的通讯。串口1与电源电平转化芯片Max3223相连,USART1_TX(输出,所以在装备GPIO时,界说该口的方法为推拉输出,USART1_ RX为输入,界说为悬浮输入方法。串口2与SN65LBC184D通讯,完结数据的收发,USART2_RTS、USART2_RX为输入端口,方法界说为悬浮输入方法,USART2_CTS、USART2_TX为输出端口,方法界说为推拉输出。串口3用来操控SIM900A芯片,USART3_RTS、USART3_RX为输入端口,方法界说为悬浮输入,USART3_CTS、USART3_TX为输出端口,方法界说为推拉输出。

  通讯芯片选用SIMCom公司的新式紧凑型产品SIM900A,它归于双频GSM/GPRS模块,彻底选用SMT封装方法,功用安稳,外观精巧,性价比高,而且能够满意用户的多种需求。在完结断线主动重连功用时,涉及到DCD、RI两个引脚的运用。DCD引脚用来完结模数转化,当模块掉线时,会给DCD引脚一个高电平,当这个电平被DCD引脚检测到之后,模块便是采纳相应的动作,来从头衔接上线。RI引脚在模块上线之后,就一向坚持高电平,在有电话和短信进来的时分,RI管脚就会有一个低电平呈现,当RI引脚检测到这个低电平的时分,模块就会采纳相应动作,进入到短信或许电线的底层装备

  两大功用。首要要树立开发渠道,在工程中参加需求用到的库函数以及装备文件,然后装备体系时钟、中止操控器、输入输出的GPIO以及相应的串口。在装备这些参数的时分,首要需求对照原理图进行编写,然后检查芯片用到哪些端口和这些端口的效果,这样才干确保无误。接下来就要对各个部分进行装备,以确保模块能够正常运转。

  开发环境树立好之后,就能够装备端口参数了。关于本模块,设置USART传输的比特率为9 600 b/s,字长为8 bit,1bit中止位,无查验方法。在对串口1、2、3初始化之后,翻开串口的中止呼应函数:USART_ITConfig(USART1,USART_IT_RXNE,ENABLE)(以串口1为例),使能相应的串口:USART_Cmd(USART1,ENABLE),这样串口的装备就基本完结了。

  首要装备优先级分组,设置先占优先级1位,从优先级3位。本模块界说了5个大局中止,别离为:两个RTC大局中止、USART1大局中止、USART2大局中止、USART3大局中止,别离对每一个中止装备优先级,使能串口再初始化即可。需求留意的是,PC15管脚作为EXTI15的外部中止输入管脚,当该管脚的电平为低电平的时分触发,模块进入短信方法,因而给这个中止一个比较高的优先级,所以界说该中止先占优先级1位,从优先级0位。在设置优先级的时分,有必要依据模块的运转状况,挑选最优的中止分组和优先级,才干确保程序运转时,能够快速的呼应中止。

  SIM900A的短信功用首要分为两个部分,榜首:读取短消息。读取短消息的设置指令为:AT+CMGR,该指令收效后有两个回来值:index和mode,index便是接收到的短信的编号,咱们将接收到的index内容放在一个长度为30的buf中,再将buf写入到串口3中,然后再读取串口3中的内容,这样,短信的编号就获取完毕。获取了短信的编号之后,就能去获取短信的详细内容,而短信的内容则寄存在alpha中,它处于呼应的第三个方位,经过get_fw(at_string,phnum,19,2)可将短信的内容取出来,这样短信的内容就获取到了。第二:发送短消息。发送短消息的设置指令为:AT+CMGS,首要将发送短信的电话号码存入到一个buf中,将这个buf写入到串口3中,以此获取手机号码。而短信在发送的时分,短信内容之前会带一个“”号,在程序规划时,只需检测到“”号时,后边的内容也便是短信发送的内容,最终将短信的内容写到串口3即可。

  本模块自界说了许多短消息指令来设置或许查询模块的参数,详细为:SIP:IP地址设置指令、SPT:端口号设置指令、DID:ID号设置指令、ACON:主动衔接指令、PRT:打印指令、LIVE:心跳操作指令、CSQ:信号强度查询指令。这些指令经过短信的方法来完结对模块的操作。

  拿SIP来举例,它的完结进程为:首要把短信中的=之前的字符取出来寄存在sms_cmd中,然后将sms_cmd与SIP、SIT、DID、ACON、PRT、LIVE、CSQ来比较,假如等于其间一个,则程序跳转到相应的部分来履行相应的操作。这儿,strcmp(sms_cmd,“SIP”)==0,程序跳转到SIP部分来履行IP部分的操作。然后,将=之后的字符取出来寄存在sms_para中。经过字符串比较函数来判别它是?仍是数字。假如是?,则表明该短信指令是一个查询指令,就只需求用输出显现IP号给用户看。假如是数字,则表明该短信指令是一个设置指令,就需求从头设置某些参数值,来改动模块的运转进程。关于SIP,假如=之后是数字,就表明该短信是用户用来设置模块的IP地址的。此刻,就要把当时的IP值赋给模块的IP值就能够了。最终输出显现IP地址设置成功,则SPT部分的操作就完结了。

  数据包头现已界说为S_PACKET_HEADER结构类型,link_id为DWORD类型,关于发送,填写方针link_id,关于接收到的数据包,则为源link_id(由服务器主动转化填写),完毕标志为0x01,数据Data则依据详细的指令而各不相同。

  后台软件依据指定的服务器地址和端口号建议TCP衔接恳求,衔接成功后开端指令交互。作业进程描绘如下:

  1)后台软件首要选用CMD_LOGIN指令,登陆到通讯服务器,在登陆成功之前,发送其他任何指令服务器都不处理。发送CMD_LOGIN:FORWARD给服务器,带着数据为S_TERMINAL。该指令的方针link_id设为0,表明发送给服务器,而不是给其他终端。

  2)服务器在CMD_LOGIN:RESPONSE_OK中将其他在线模块的信息发送过来,从而在客户端运用程序构成在线模块列表。后台若收到CMD_LO GIN:;RESPONSE_FAILED回应,则失利。收到CMD_LOGIN:RESPONSE_OK回应,则成功,带着数据为S_TERMINAL。

  首要要界说树立TCP衔接与封闭TCP衔接的函数,涉及到的AT指令为AT+CIPSTART和AT+CIPCLOSE。树立TCP衔接时,先把AT+CIPSTART指令写到串口3中,然后该指令收效后,会回来一个“CONNECT”,之后只需检测到有回来值“CONNECT”,就表明TCP衔接现已树立成功。封闭TCP

  衔接与树立TCP衔接相似,AT+CIPCLOSE指令收效后会回来一个“CLOSE OK”,只需检测到“CLOSE OK”,就表明TCP衔接现已封闭。

  至于数据读取到什么时分完毕,本程序界说了3种完毕的状况:1)假如用户界说了数据的长度,就读取到最终一个字节才完毕。2)假如用户没有界说数据的长度,就在读取到回车符的时分完毕。3)假如遇到既没有已界说的数据包长度,又没有读取到回车符的状况时,就在数据寄存的长度超越user_string[i]总长度的四分之三的时分完毕,或许在超越100毫秒没有数据发过来的时分完毕数据的读取。

  TCP链接的树立涉及到的AT指令是at+cipstart,该指令有两个回来值,别离是模块的IP地址和端口号。首要将at+cipstart指令回来的当时模块的IP地址和端口号寄存到一个buf中,然后将这个buf写入到串口3中,假如之后能够读取到回来值“CONNECT”,就表明TCP链接现已树立好。

  TCP链接的封闭涉及到的AT指令是at+cipclose,该指令没有回来值,能够直接将该指令写到串口3中,假如检测到“CLOSE OK”,就表明TCP链接现已被封闭。

  本文规划的无线通讯模块,是使用STM32来操控SIM900A芯片,来完结短消息的收发与数据的无线传输。本规划完结了无线通讯的硬件部分和软件部分的规划与完结。在屡次运转实验时,本模块没有呈现掉线以及发热等问题,非常安稳。本次规划本钱较低,运转安稳牢靠,运用规模非常广泛,使用SIM900A,降低了模块的本钱,使其愈加具有商业价值。

上一篇:聊聊“全双工多方通话版LoRa数字语音模块”奥妙在这里 下一篇:通宇通讯定增获受理 强化光模块及无线通讯体系研制及工业化布局
m6米乐网页版
m6米乐网页版