1394技术及其在图像传输系统中的应用
电源管理模块负责设备的挂起和恢复。
I/O模块完成I/O请求的大部分工作。该模块定义了所需的I/O控制代码,从而为应用程序提供了调用系统驱程序的接口。
3.2 动态链接库的设计
由于Windows具有与设备无关的特性,不提倡与机器底层的东西打交道。如果直接用Windows的API函数或I/O读写指令进行访问和操作,程序运行时往往就会产生保护模式错误甚至死机,更严重的情况会导致系统崩溃。用DLL技术可以方便地解决上述问题。javascript:window.open(this.src);" style="cursor:pointer;"/>而且DLL没有自己的堆栈,与调用它的应用程序采用有相同的堆栈式,减少了编程设计上的不便;一个DLL在内存中只有一个实例,使之能高效经济地使用内存;DLL的代码封装怀使得程序简洁明晰。
在1394 API动态链接库中封装了所有的1394请求命令,如异步读/写、等时读/写等,从而可以很方便地在应用级实现1394传输。通过调用DeviceIoControl向设备发请求,由I/O管理器构造一个1394请求块传给总线驱动程序;由总线驱动程序完成该请求或者请求进一步传给端口驱动程序,然后返回执行状态。
3.3 应用程序设计
在高速图像传输系统中,应用程序是控制数据流的中心。采用VC++ 6.0和2000DDK实现,主要功能有:获取视频数据源、检测1394设备、总线管理、分配1394地址空间、设备等时资源和通道、完成1394传输。一次等时传输流程如图5所示。
4 应用前景
如前所述,由于1394的高速、灵活和可扩展性,使其在很多方面都大有用武之地,其中包括大容量存储器、视频会议、家庭网络、高速打印机、娱乐设备等。而且由于数字广播、因特网、家庭数字网络和高带宽的视频/音频传输需求,使得IEEE 1394迅速发展。