光电隔离并入串出电路驱动方法技术

技术编号:5309007 阅读:209 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示了一种光电隔离并入串出电路驱动方法,所述方法包括:采用至少一片并入串出扩展IC芯片,使用级连的方式,实现N个开关量的输入;采用中断状态机的方式驱动IC芯片;IC芯片的当前状态值存放在变量FSM中,在IC芯片的初始状态,FSM的初始值为0;每隔设定时长响应一次定时器中断,在中断中各状态处理本状态所需完成的操作并按顺序依次进入下一个状态,共2*N个状态;当进入最后一个状态时,将N个开关量数据存放在一个N位的变量Shift_R中,其每一位对应外部的一个开关量输入,然后将状态变量FSM变为初始状态对应的值。本发明专利技术提出的光电隔离并入串出电路驱动方法,采用中断状态机的方式驱动并入串出扩展IC芯片,以保证接口电路的实时控制。

【技术实现步骤摘要】

本专利技术属于电子通讯
,涉及一种电路驱动方法,尤其涉及一种光电隔离 并入串出电路驱动方法。
技术介绍
请参阅图1,为了增加CPU的开关量输入能力,设计了并行输入串行输出的扩展电 路(如并入串出74HC165芯片),这样便可以使用很少的几个GPIO端口实现多路开关量的 输入,大大节省了 GPIO的资源。但考虑到系统抗干扰能力问题,74HC165的工作电源来自独立的+5V,所以与CPU 的端口(SH/LD、CLK和QH)连接必须使用光耦隔离信号;这给74HC165的软件驱动带来了一 定困难,移位的脉冲频率受光耦的延时限制。
技术实现思路
本专利技术所要解决的技术问题是提供一种,可保 证接口电路的实时控制。为解决上述技术问题,本专利技术采用如下技术方案一种,所述方法包括采用至少一片并入串出扩展IC芯片,使用级连的方式,实现N个开关量的输入;采 用中断状态机的方式驱动所述IC芯片;所述IC芯片的当前状态值存放在变量FSM中,在IC芯片的初始状态,FSM设定一 初始值(如FSM的初始值为0);每隔设定时长响应一次定时器中断,在中断中各状态处理本状态所需完成的操作 并按顺序依次进入下一个状态,共2*N个状态;当进入最后一个状态时,将N个开关量数据存放在一个N位的变量a!ift_R中,其 每一位对应外部的一个开关量输入,然后将状态变量FSM变为初始状态对应的值。作为本专利技术的一种优选方案,所述方法中,采用的IC芯片为2片74HC165并入串 出扩展IC芯片,实现16个开关量的输入;共32个状态,分别为初始状态、16个读数据状态、15个移位状态;所述 16 个读数据状态记为Read_DataO、Read_Datal、Read_Data2、......、Read_Datal5 ; Pfi J^E 15 ^ itLVv^ Ι :Displace_DataO> Displace_Datal> Displace— Data2、......、Displace_Datal4。作为本专利技术的一种优选方案,所述方法的一次中断处理具体包括如下步骤S101、堆栈和中继管理;S102、读取FSM中当前状态机的状态值进行散转;S103、根据当前状态机的状态值进行不同操作;若当前状态机的状态值为初始状 态,则数据变量清零,锁存并行输入数据;若当前状态机的状态值为ReacLDatai,则读取Datai ;若当前状态机的状态值为Displace_Dataj,则进行移位操作;其中,ReacLDatai中 的 i 为 0-15,Displace_Dataj 中的 j 为 0-14 ;S104、状态机的状态切换,FAS的值加1 ;S105、判断FAS是否为最后一个状态值32 ;若是转向步骤S106,否则转向步骤 108 ;S106、移位输入的数据,送入一个N位的变量Shift_R中保存;S107、将状态变量FSM变为初始状态对应的值;S108、出栈。本专利技术的有益效果在于本专利技术提出的,采用中 断状态机的方式驱动并入串出扩展IC芯片,以保证接口电路的实时控制。在定时器中断中 处理,可保证光耦延迟中信号的传递;也因在定时器中断中仅处理一个状态的动作,时间相 对很多,所以又能保证主循环的轮询时间。附图说明图1为现有技术中并行输入串行输出扩展电路的电路示意图。图2为74HC165的真值表示意图。图3为根据真值表绘制的状态机模型图。图4为中断处理步骤的流程图。具体实施方式下面结合附图详细说明本专利技术的优选实施例。实施例一为了增加CPU的开关量输入能力,设计并行输入串行输出的扩展电路,这样只需 使用用CPU的3个GPIO端口便可实现16格开关量的输入。如图1,采用2片74HC165并入 串出扩展IC,使用级连的方式,实现16个开关量的输入。SH/LD、CLK为74HC165的控制信 号,QH和SER为级连和串行输入信号。考虑到系统需提高抗干扰问题,74HC165的工作电源 来自独立的COMM+和COMM- (+5V),所以与CPU连接的SH/LD、CLK和QH必须使用光耦传递信 号,这给74HC165的软件驱动带来了一定困难,必须采用中断状态机的方式驱动74HC165, 以保证接口电路的实时控制。请参阅图2,图2为74HC165的真值表,上述真值表可以体现74HC165的工作方式。请参阅图3,图3为根据真值表绘制的状态机模型图。状态机共32个状态,分别 为初始状态、16个读数据状态、15个移位状态;所述16个读数据状态记为Read_DataO、Read_Datal、Read_Data2、......、Read_Datal5 ;所述 15 个移位状态记为Displace_DataO、Displace_Datal、Displace_Data2、......、Displace_Datal4。所述 32 个状态依次为初始状态(Data_PLL)、Read_DataO、Displace_DataO、Read_Datal、Displace_Datal、Read_Data2、 Displace_Data2、......、Read_Datal4、Displace_Datal4、Read_Datal5。定时器中断的函数功能包括为系统提供5ms的TICK信号;驱动74HC165的并行 输入/串行输出移位功能。由图4可知,74HC165当前状态值存放在变量74HC165_FSM中,初始值为0(即Data_PLL状态)每隔一定时长响应一次定时器中断,在中断中各状态处理本状态所需完成 的操作并按顺序依次进入下一个状态,共30个状态;当进入最后一个状态(Read_Data15状 态)时,将数据存放在一个16位的变量Alarm_a!ift_R中其每一位对应外部的一个开关量 输入,然后将状态变量(74HC165_FSM)变为启始状态(Data_PLL状态).这样在定时器中断中处理,即保证了光耦延迟中信号的传递,也因在定时器中断 中仅处理一个状态的动作,时间相对很多,所以又能保证主循环的轮询时间。综上研究表明,利用状态机的模式编写带光耦隔离的74HC165的驱动代码,即保 证了光耦延迟中信号的传递,又能保证了主循环的轮循时间,从而提高系统的抗干扰能力; 通过对状态机模型的应用,可以延伸到很多软件编程领域,将状态机放入轮循回路或中断 服务程序(ISR),直接由硬件或全局变量提取事件等;该软件方案可使用其他方案的相同 应用,以缩短开发周期;目前,该技术已在动力一体化机柜电源系统(中型柜)中使用,并通过测试。对于 以后状态机模式的应用和推广起到启蒙作用。实施例二本专利技术揭示了一种,所述方法包括采用至少一片并入串出扩展IC芯片,使用级连的方式,实现N个开关量的输入;采 用中断状态机的方式驱动所述IC芯片;所述IC芯片的当前状态值存放在变量FSM中,在IC芯片的初始状态,FSM的初始 值为0;每隔设定时长响应一次定时器中断,在中断中各状态处理本状态所需完成的操作 并按顺序依次进入下一个状态,共2*N个状态;当进入最后一个状态时,将N个开关量数据存放在一个N位的变量S!ift_R中,其 每一位对应外部的一个开关量输入,然后将状态变量FSM变为初始状态对应的值。请参阅图3,本实施例中中,采用的IC芯本文档来自技高网...

【技术保护点】
一种光电隔离并入串出电路驱动方法,其特征在于,所述方法包括:采用至少一片并入串出扩展IC芯片,使用级连的方式,实现N个开关量的输入;采用中断状态机的方式驱动所述IC芯片;所述IC芯片的当前状态值存放在变量FSM中,在IC芯片的初始状态,FSM设定一初始值;每隔设定时长响应一次定时器中断,在中断中各状态处理本状态所需完成的操作并按顺序依次进入下一个状态,共2*N个状态;当进入最后一个状态时,将N个开关量数据存放在一个N位的变量Shift_R中,其每一位对应外部的一个开关量输入,然后将状态变量FSM变为初始状态对应的值。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡祺周立身
申请(专利权)人:中达电通股份有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1