ATM的外围设备包括读卡器,密码键盘,流水打印机等, 通过串口和ATM的主机交互, 实现主机和外围设备的通讯功能的程序叫"驱动库", 而用户看到的ATM机器的屏幕里的软件是应用层. 应用层调用驱动库来实现ATM的诸多功能.
这种模式的项目在分工的问题上,常常出现这种情况:一些功能是放在应用层还是放在驱动层? 公司的开发人员会围绕这些问题 争得面红耳赤.
其实, 驱动层只需要实现简单的操作,比如硬件的初始化, 发送数据, 关闭硬件, 读卡,退卡,等等...至于逻辑的功能就要放在应用层来做,比如, 什么时候会退卡,什么时候不可以进卡等..
举个形象的比喻: 驱动层是一把刀,应用层是刀的使用者, 这把到只是简单的实现了切东西的功能, 而这把刀当作小李飞刀,还是屠龙刀,或宰鸡刀,就要完全看使用者(应用层).