电力载波模块接收不到单片机串口输出的内容(偶校验)

Asuka0309lss 2017-09-13 03:29:29
首先,载波模块和单片机uart的txd,rxd是相互连接的,此外载波模块连接了电源+12v和地。

载波模块是上电自动试探波特率和地址的,通过txd发送报文给单片机,我编写的程序是单片机收到相关报文后按照645格式回应,由于是载波模块是偶校验,我将单片机串口输出设置改为了9位数据格式,校验方式改为了偶校验。
USART_InitStructure.USART_WordLength = USART_WordLength_9b;
USART_InitStructure.USART_Parity = USART_Parity_Even;

通过串口调试助手,我能看到单片机收到的报文,也能看到单片机发出的报文,格式内容是没有问题的,但是载波模块却收不到我的应答,一直重复试探。(我没法查看载波模块实际收到的内容)

查了很久也找不到原因,请问问题出在哪里?万分感谢!
...全文
296 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianxj001 2017-09-19
  • 打赏
  • 举报
回复
引用 3 楼 Asuka0309lss 的回复:
我现在将载波模块的tx,rx和单片机串口的txd,rxd分别对接,直接用串口调试助手查看,能看到收到的数据,也让串口定时发送应答帧,但是载波模块还是收不到应答,这样是不是说明报文内容有问题?
可能情况很多,载波模块本身是不是有问题也是个可能原因,如果它的RX端子有问题,那么收不到应答也算正常。 更多的可能,就是应答报文,不符合载波模块协议要求,被模块接受后,认为非法而放弃,注意这里的协议有2个,一个是底层的,比如起始位停止位数据长度奇偶校验等关于串口本身物理层的协议必须一致,还有就是报文封装协议,这2个全对了,他们才能正确通信。
Asuka0309lss 2017-09-18
  • 打赏
  • 举报
回复
我现在将载波模块的tx,rx和单片机串口的txd,rxd分别对接,直接用串口调试助手查看,能看到收到的数据,也让串口定时发送应答帧,但是载波模块还是收不到应答,这样是不是说明报文内容有问题?
tianxj001 2017-09-15
  • 打赏
  • 举报
回复
报文后按照645格式回应,你可以编制一套应答数据,通过串口助手模拟单片机应答报文,通过上位机发送,来检验你编制的应答报文是否正确,其实这一类东东,没有单片机时候基本上无一例外可以通过串口助手完成第一步双方握手、协议文本等内容的熟悉调试和验证。 等上位机和载波模块通信问题都解决了,单片机程序应该很快就可以写好了。
zgl7903 2017-09-15
  • 打赏
  • 举报
回复
用同样的2套单片机的系统在电力线上传输 看是否能交互成功? 可以排除载波传输这一块的问题 同样的2套单片机系统, 一套模拟发送上面说的接收到的数据, 看另一套系统是否接收到的一样? 可以排除波特率校验等问题 核对协议和数据
智能家居控制系统设计方案 智能家居控制系统设计方案 摘要:本文研究和设计了一种应用于智能家居环境中的远程自动控制系统方案。它将操 作指令由GSM手机经GSM网络传至家中的值守GSM模块,再由该GSM模块通过由单片机控制 的红外无线局域网传输红外信息来控制家电动作,完成对信息家电的控制意图,并可将 信息家电的信息反馈回来,以便进行下一步的控制。系统安全可靠,性能稳定。同时该 系统除用于家庭设备远程自动控制外,也可用于家庭通信、家庭安全防范,共同组建智 能家居控制系统。 21世纪是信息化的世纪,各种通信和互联网等技术推动了人类文明的巨大进步。智能家 居控制系统的出现使得人们可以通过手机或者互联网在任何时候、任意地点对家中的任 意电器(空调、热水器、电饭煲、灯光、音响、DVD录像机)进行远程控制;可以在下班途 中,预先将家中的空调打开、让热水器提前烧好热水、电饭煲煮好香喷喷的米饭……而这 一切的实现都仅仅是轻轻的点几下手机按键或鼠标。此外,该系统还可使家庭具有多途 径报警、远程监听、数字留言等多种功能,如果不幸出现某种险情,您和110可以在第一 时间获得通知以便进一步采取行动。舒适、时尚的家居生活是社会进步的标志,智能家 居系统能够在不改变家中任何家电的情况下,家内家外(在家内通过无线局域网,在家外 通过电信或互联网)都能对家里的电器、灯光、电源、家庭环境进行方便的控制,使人们 尽享高科技带来的简便而时尚的现代生活。 1 智能家居系统控制的工作原理 本系统是基于红外和GSM网络的用于智能家居环境中的一种远程自动控制系统。其工作原 理为:用户通过自身的手机发出命令短消息,在家值守的GSM模块接收到命令后发送给主 机(单片机),主机通过对命令的处理,把命令通过红外传输到相应的分机(单片机)上, 分机对命令处理后,启动相应设备,完成用户给出的命令并向主机回复应答,主机收到 应答后,通过GSM模块发出回复短消息,报告用户完成命令。若在规定的时间内(这里定 时60s)主机没有接收到分机的回复信息,即把该操作认为无效,回复操作无效短消息给 用户手机,要求用户重新发出命令。若收到的短信息有误,主机便立刻回复用户该操作 无效,请求重新发出命令。系统构成如图1所示。 图1 系统构成图 2 硬件设计 2.1 MCU与GSM通信模块单片机通过RS232串行通信接口与GSM模块通信,提取GSM设备的短信,发送相关的信息 ,并通过串行通信接口与红外模块相连,利用红外模块,达到主、分机之间的通信,因 此,选用AT89S52芯片。控制上需要用到两个串行接口,但89S52只有一个串口,故还需 要在程序中进行模拟串行接口通信。其最简外部接线电路如图2所示。 图2 AT89S52外部接线 89S52与TC35之间通过异步串行接口进行通信,通信速率为9600b/s,具有1位起始位、8 位数据位、1位停止位,无奇偶校验单片机启动后,便发出AT+CMGD一2指令,清除第二存储空间的数据,然后不断地发出指 令读取第二存储空间。若有数据,即表示接收到数据,并开始对数据进行处理,处理完 毕后再把该空间数据删除。当单片机向手机发出短消息时,单片机会向GSM模块发出AT、 AT+CMGF=0、AT+CMGS=X一系列的指令,当接收到回复信息后,最后发出短消息的内容。 2.2 红外无线通信模块 红外发送器电路如图3所示包括38kHz晶体振荡器、反相器、与非门、驱动门Q1和红外发 射管D1等部分。其中38kHz晶体振荡器、电阻R3和反相器组成脉冲振荡器,用以产生38k Hz的脉冲序列作为载波信号,红外发射管D1选用Vishay公司生产的TSAL6238,用来向外 发射950nm的红外光束。 图3 红外发射器电路图 红外接收器电路如图4所示,当接收器收到数位"O"时,Q2管导通,使得RXD接收到低电平 ,收到数位"1"时,Q2管截至,RXD接收到高电平。 图4 红外接收器电路图 2.3 模拟控制 本系统将以不同的电机做出不同的动作,来模拟说明智能家居对系统控制的响应。如图 5所示,当分机的单片机收到本机的地址信息,便提取信息中的数据,根据数据的命令, 若把P0.0,P0.1脚置成低电平,其他为高电平,则Q3、Q4管导通,电机便正向旋转,若 把P0.2,P0.3脚置成低电平,其他为高电平,则Q5、Q6管导通,电机便反向旋转(以前一 情况为正向时)。若一台分机上连多个电机,有多台分机,便可以实现在智能家居环境中 对家庭各个设备的同步控制。 图5 电机驱动电路 3 软件设计 3.1 单片机主程序设计 主机上电复位后进行初始化,然后不断地对GSM模块进行扫描查询。当查询到GSM模块接 收到用户发送的短信时,便对短信进行处理,提取相关信息,然后通过红外模块相分机 发送相应的命令数据。接着就在
智能家居控制系统设计方案 摘要:本文研究和设计了一种应用于智能家居环境中的远程自动控制系统方案。它将操 作指令由GSM手机经GSM网络传至家中的值守GSM模块,再由该GSM模块通过由单片机控制的 红外无线局域网传输红外信息来控制家电动作,完成对信息家电的控制意图,并可将信息 家电的信息反馈回来,以便进行下一步的控制.系统安全可靠,性能稳定.同时该系统除 用于家庭设备远程自动控制外,也可用于家庭通信、家庭安全防范,共同组建智能家居控 制系统. 21世纪是信息化的世纪,各种通信和互联网等技术推动了人类文明的巨大进步。智能家 居控制系统的出现使得人们可以通过手机或者互联网在任何时候、任意地点对家中的任 意电器(空调、热水器、电饭煲、灯光、音响、DVD录像机)进行远程控制;可以在下班 途中,预先将家中的空调打开、让热水器提前烧好热水、电饭煲煮好香喷喷的米饭……而 这一切的实现都仅仅是轻轻的点几下手机按键或鼠标。此外,该系统还可使家庭具有多 途径报警、远程监听、数字留言等多种功能,如果不幸出现某种险情,您和110可以在第 一时间获得通知以便进一步采取行动。舒适、时尚的家居生活是社会进步的标志,智能家 居系统能够在不改变家中任何家电的情况下,家内家外(在家内通过无线局域网,在家外 通过电信或互联网)都能对家里的电器、灯光、电源、家庭环境进行方便的控制,使人 们尽享高科技带来的简便而时尚的现代生活。 1 智能家居系统控制的工作原理 本系统是基于红外和GSM网络的用于智能家居环境中的一种远程自动控制系统.其工作原 理为:用户通过自身的手机发出命令短消息,在家值守的GSM模块接收到命令后发送给主 机(单片机),主机通过对命令的处理,把命令通过红外传输到相应的分机(单片机) 上,分机对命令处理后,启动相应设备,完成用户给出的命令并向主机回复应答,主机 收到应答后,通过GSM模块发出回复短消息,报告用户完成命令。若在规定的时间内(这里 定时60s)主机没有接收到分机的回复信息,即把该操作认为无效,回复操作无效短消息 给用户手机,要求用户重新发出命令。若收到的短信息有误,主机便立刻回复用户该操 作无效,请求重新发出命令。系统构成如图1所示. 图1 系统构成图 2 硬件设计 2。1 MCU与GSM通信模块单片机通过RS232串行通信接口与GSM模块通信,提取GSM设备的短信,发送相关的信息 ,并通过串行通信接口与红外模块相连,利用红外模块,达到主、分机之间的通信,因此 ,选用AT89S52芯片。控制上需要用到两个串行接口,但89S52只有一个串口,故还需要在 程序中进行模拟串行接口通信。其最简外部接线电路如图2所示。 图2 AT89S52外部接线 89S52与TC35之间通过异步串行接口进行通信,通信速率为9600b/s,具有1位起始位、8 位数据位、1位停止位,无奇偶校验单片机启动后,便发出AT+CMGD一2指令,清除第二存储空间的数据,然后不断地发出指令 读取第二存储空间。若有数据,即表示接收到数据,并开始对数据进行处理,处理完毕 后再把该空间数据删除.当单片机向手机发出短消息时,单片机会向GSM模块发出AT、AT +CMGF=0、AT+CMGS=X一系列的指令,当接收到回复信息后,最后发出短消息的内容。 2。2 红外无线通信模块 红外发送器电路如图3所示包括38kHz晶体振荡器、反相器、与非门、驱动门Q1和红外发 射管D1等部分。其中38kHz晶体振荡器、电阻R3和反相器组成脉冲振荡器,用以产生38k Hz的脉冲序列作为载波信号,红外发射管D1选用Vishay公司生产的TSAL6238,用来向外发 射950nm的红外光束。 图3 红外发射器电路图 红外接收器电路如图4所示,当接收器收到数位"O"时,Q2管导通,使得RXD接收到低电平 ,收到数位"1"时,Q2管截至,RXD接收到高电平。 图4 红外接收器电路图 2.3 模拟控制 本系统将以不同的电机做出不同的动作,来模拟说明智能家居对系统控制的响应。如图 5所示,当分机的单片机收到本机的地址信息,便提取信息中的数据,根据数据的命令, 若把P0。0,P0.1脚置成低电平,其他为高电平,则Q3、Q4管导通,电机便正向旋转,若把 P0.2,P0.3脚置成低电平,其他为高电平,则Q5、Q6管导通,电机便反向旋转(以前一情 况为正向时).若一台分机上连多个电机,有多台分机,便可以实现在智能家居环境中对 家庭各个设备的同步控制。 图5 电机驱动电路 3 软件设计 3。1 单片机主程序设计 主机上电复位后进行初始化,然后不断地对GSM模块进行扫描查询。当查询到GSM模块接 收到用户发送的短信时,便对短信进行处理,提取相关信息,然后通过红外模块相分机发 送相应的命令数据。接着就在一定时间(可根据用户需要调

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧