cPCI台热切换原理和实现
3 cPCI热切换子程序软件实现
软件系统的目标是实现中断的响应处理,与操作系统交互,以正确及时地安装或卸载对应的设备驱动程序,确保整个软件系统安全运行。
3.1 软件分层设计
本系统软件分成三层:最底层为设备驱动程序hotswap.sys,它执行与硬件相关的操作,如响应热切换过程中产生的中断事件、对Hotswap寄存器的操作,包括控制LED指示、清除INS/EXT状态位、隐藏设备等;中间层为热切换处理程序,一个由HSMonitor.exe创建的建立线程,一方面接收来自驱动程序的通知,另一方面通知OS重新枚举cPCI总线或卸载某一设备驱动程序;最上层为一图形界面应用程序HSMonitor.exe,为用户提供可见的设备插拔动态信息。软件结构如图3所示。
3.2 软件流程
ENUM#信号有效时,首先设备驱动程序hotSwap.sys的中断服务程序被执行,中断服务程序扫描整个cPCI总线,读取PIC6150的热切换寄存器,清除相应状态,并根据设备的INS/EXT状态位建立设备变更清单,通知热切换处理线程。热切换线程读取设备变更清单,如果有刚插入的设备,则通知OS重新枚举cPCI总线,如果有待拔出的设备,则利用设备槽信息(总线号/设备号)换算成PnP DevNode地址,通知OS移除该DevNode。OS在移除一个DevNode后或枚举总线时发现了新设备则发消息到应用程序HSMonitor.exe,该应用程序被设计成每次开机时自运行且注册为该消息的接收者。HSMonitor.exe获取刚被处理过的DevNode及处理结果。包括设备驱动加载成功、设备被成功移除等,以日志形式显示到控制台,供用户查询。
cPCI平台产品因为其可靠性和坚固性逐渐被国内电信设备三商采用,本设计中的cPCI平台产品被广泛应用于语音呼叫中心和自动应答系统,其基于cPCI的全热切换设计保证了系统的不间断运行,极大地提高了系统可靠性。本产品近一年的市场应用表明,该设计方案成本低廉,容易实现,用户使用方便。
CPCI 相关文章:
- 基于cPCI总线的嵌入式遥测前端处理器系统设计(04-27)
- CPCI总线在数字化电台中的设计(03-26)