无时钟同步信号单片机实现homebus总线通信的方法

文档序号:7897798阅读:2322来源:国知局
专利名称:无时钟同步信号单片机实现homebus总线通信的方法
技术领域
本发明涉及一种异步通信方式,具体地说,涉及一种无时钟同步信号单片机实现 H0MEBUS总线通信的方法。
背景技术
80年代末,由于通信与信息技术的发展,出现了对住宅中各种通信、家电、安保设备通过总线技术进行监视、控制与管理的商用系统。当时日本正处于住宅建造过剩,房产市场低迷的时期,日本建设省在推进智能建筑概念时,抓住用于住宅的总线技术为契机, 提出了家庭总线系统概念(HBS,Home Bus System),邮政省与通产省于1986年组织曰本电子机械工业协会与电波技术协会共同组建HBS标准委员、在1988年9月制定了 HBS标准。由于其双绞线通信方式具有无极性连接,对于需要现场安装的制冷设备尤为重要,另外其拓扑结构简单,所以被广泛用于日本各大企业的电器产品中,并且也逐渐应用到国内各个电器生产厂家。但由于HomeBus收发器匪1192或匪1007接收的异步通信信息,必须经过同步时钟调制。由于单片机发向HomeBus收发器MM1192或MM1007的异步通信数据,必须经过同步时钟的调制。所以目前能够在异步通信同时输出同步时钟的单片机,只有瑞萨电子中的 H8系列芯片和富士通的部分芯片支持。而由于HomeBus无极性、差分信号、长距离以及抗干扰性等优点,使得HomeBus在商用空调领域有着广阔的应用前景。而HomeBus对芯片异步通信时具有同步时钟的要求, 使得我们选择单片机范围大大缩小,无论从成本上还是从芯片功能的选择上都大大受限于 H8和富士通系列单片机。目前还没有解决HomeBus同步时钟的完善方法,其他的两种方式都是非常具有局限性的,一种是用同步方式,另一种是用定时器模拟同步时钟。其中同步方式一个字节的数据必须拆分成三个字节的同步数据进行发送,分别模拟起始位、数据位、校验位和停止位。并且在发送的同时无法同步接收,要想实现同发同收只能用两个通信端口,一个同步发送的同时另一个端口实现同步接收,只能用两个通信端口实现一路通信功能。另外在接收数据时必须将同步方式转换为异步接收方式才能正确接收。这种方式即增加了软件的复杂度又浪费了硬件资源,同时通信的可靠性和容错率大大降低。另一种用定时器模拟同步时钟的方式,也存在致命的缺点。用定时器实现同步时钟,必须设定一个时间间隔非常小的定时器,例如9. 6K的通信速率(其他通信速率以此类推),设计的同步时钟就是19. 2K,即定时间隔时间为52us。52us意味着如果单指令周期命令为lus,只能在执行52条单指令周期指令,就必须执行一次中断,这样大量的时间都在中断中,同时还必须计算好进中断压栈造成的时间延时。再就是要解决模拟时钟与发送数据
3的同步问题。从理论上讲用这种方法为了处理通信时钟几乎不能执行其他指令,否则就会出现模拟的同步时钟出现偏差和不同步现象。这也就决定了本方法是无法实现的。

发明内容
本发明克服上述缺陷,提供了一种用不具有同步时钟输出异步通信的单片机,在异步通信时用单片机内部PWM信号模拟出同步时钟信号,实现HomeBus总线通信,从而可以随意的选择单片机实现HomeBus通信,而不必局限于H8系列和富士通系列单片机的无时钟同步信号单片机实现H0MEBUS总线通信的方法。本发明的无时钟同步信号单片机实现H0MEBUS总线通信的方法的技术方案是这样的单片机设置为具有PWM输出功能的单片机,单片机的RXD、T)(D、PWM端口分别和 H0MEBUS的RXD、TXD, SCK端口连接,其包括下列步骤
1开机启动单片机初始化;
2通信端口初始化;
3设置异步通信的起始位、数据、校验位和停止位;
4设置单片机的异步通信波特率;
5设置单片机的PWM引脚输出波特率为异步通信波特率的2倍;
6:PWM输出启动;
7检测总线是否空闲,如果不空闲等待随机时间再检测,如果空闲,进入步骤8
8=PWM输出同步,同时开启异步发送;
9检验接收发送的数据是否一致,如果不一致,进入重发状态,回步骤7,如果一致进入步骤10:
10检验发送是否结束,如果结束,就返回等待下次发送,如果没有结束,就回步骤7继续发送其他数据。单片机的异步通信波特率设置,设置单片机的异步通信波特率和PWM输出信号的通信速率,且PWM输出信号的通信速率为异步通信速率的2倍。异步通信保持每个时刻PWM信号和异步通信发送数据信号同步。本发明的将单片机的通信口设置成异步发送和接收方式,设置起始位,奇偶校验位和停止位。将PWM输出引脚设置成PWM输出方式,同时PWM的频率设置成异步通信波特率的2倍。由于本发明利用单片机内部硬件PWM资源实现了时钟信号的输出,需要解决的关键点就是,利用单片机内部资源产生PWM,同时实现每次数据发送时PWM信号和T)(D信号起始位的同步,即在每次发送时将PWM进行重新复位,将PWM计数器的计数值清零,进入初始发送状态,从而实现了通信时钟和数据发送的同步。因为设置成异步接收发送方式,所以在异步发送的同时可以检测发送的数据是否正确,实现了 HomeBus的同发同收形式。节省了硬件资源,实现了同步方式无法实现的一个通信端口无法同发同收的缺点。同时这种方式节省了软件资源,PWM波的产生完全有芯片内部资源实现,避免了用定时器模拟同步时钟频繁进中断的致命缺点。


图1是本发明的无时钟同步信号单片机实现H0MEBUS总线通信的方法的方框图。
具体实施例方式实施例1
本发明的无时钟同步信号单片机实现H0MEBUS总线通信的方法的过程是这样的,单片机设置为具有PWM输出功能的单片机,单片机的RXD、T)(D、PWM端口分别和H0MEBUS的RXD、 TXD, SCK端口连接,开机启动;通信端口初始化;设置起始位、数据、校验位和停止位;设置异步通信波特率;设置PWM引脚输出波特率为通信波特率的2倍;PWM输出启动;检测总线是否空闲,如果不空闲等待随机时间再检测,如果空闲,进入下一步PWM输出同步,同时开启异步发送;检验接收发送的数据是否一致,如果不一致,进入重发状态,回步骤7,如果一致进入下一步。检验发送是否结束,如果结束,就返回等待下次发送,如果没有结束,就回步骤7继续发送其他数据。本实施例设置1为起始位、8位数据、1为校验位、1位停止位,单片机的异步通信波特率为4. 8K,PWM引脚输出波特率为通信波特率为9. 6K。本发明就是用不具有同步时钟输出异步通信的单片机,在异步通信时用单片机内部PWM信号模拟出同步时钟信号,实现HomeBus总线通信,从而可以随意的选择单片机实现 HomeBus通信,而不必局限于H8系列和富士通系列单片机,这也是本专利解决的主要问题。实施例2:
本实施例和实施例1的区别在于,本实施例的单片机的异步通信波特率为9. 6K,PWM引脚输出波特率为通信波特率为19.观。实施例3:
本实施例和实施例1的区别在于,本实施例的单片机的异步通信波特率为19. 2K,PWM 引脚输出波特率为通信波特率为38. 4K。
权利要求
1.一种无时钟同步信号单片机实现H0MEBUS总线通信的方法,其特征在于,单片机设置为具有PWM输出功能的单片机,单片机的RXD、T)(D、PWM端口分别和H0MEBUS的RXD、T)(D、 SCK端口连接,其包括下列步骤1 开机启动单片机初始化;2:通信端口初始化;3设置异步通信的起始位、数据、校验位和停止位;4设置单片机的异步通信波特率;5设置单片机的PWM引脚输出波特率为异步通信波特率的2倍;6:PWM输出启动;7检测总线是否空闲,如果不空闲等待随机时间再检测,如果空闲,进入步骤8 8=PWM输出同步,同时开启异步发送;9检验接收发送的数据是否一致,如果不一致,进入重发状态,回步骤7,如果一致进入步骤10:10检验发送是否结束,如果结束,就返回等待下次发送,如果没有结束,就回步骤7继续发送其他数据。
2.根据权利要求1所述的无时钟同步信号单片机实现H0MEBUS总线通信的方法,其特征在于,设置单片机的异步通信波特率和PWM输出信号的通信速率,且PWM输出信号的通信速率为异步通信速率的2倍。
3.根据权利要求1所述的无时钟同步信号单片机实现H0MEBUS总线通信的方法,其特征在于,异步通信保持每个时刻PWM信号和异步通信发送数据信号同步。
全文摘要
本发明涉及一种异步通信方式,具体地说,涉及一种无时钟同步信号单片机实现HOMEBUS总线通信的方法,提供了一种用不具有同步时钟输出异步通信的单片机,在异步通信时用单片机内部PWM信号模拟出同步时钟信号,实现HomeBus总线通信,从而可以随意的选择单片机实现HomeBus通信,而不必局限于H8系列和富士通系列单片机的无时钟同步信号单片机实现HOMEBUS总线通信的方法,单片机设置为具有PWM输出功能的单片机,单片机的RXD、TXD、PWM端口分别和HOMEBUS的RXD、TXD、SCK端口连接,这种方式节省了软件资源,PWM波的产生完全有芯片内部资源实现,避免了用定时器模拟同步时钟频繁进中断的致命缺点。
文档编号H04L7/00GK102447600SQ20111025602
公开日2012年5月9日 申请日期2011年9月1日 优先权日2011年5月27日
发明者张俊喜, 张献林, 曹锐, 李希志 申请人:青岛海信日立空调系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1