TM1300嵌入式多媒体网络通信系统的设计与实现
(5)启动EEPROM一般使用符合I2C的器件,如24LC16、24LC32等。因为除了要存放系统启动设置信息外,还要存放用于系统自举L1代码,EEPROM不得小于2K字节空间。EEPROM具体内容格式参照TM1300芯片资料文档。
特别值得注意,设计本系统PCI总线与设计PCI卡时不同的是,TM1300使用PCI总线访问时总线仲裁需仲裁器。这是因为在基于PC机主板和PCI桥接芯片上已经有总线仲裁逻辑,不需要另外再作处理。嵌入的TM1300系统则需要仲裁来处理PCI总线的请求和应答,具体的逻辑设计应参考PCI规范相关内容。另外,嵌入式系统需要通过JTAG口进行调试和仿真,并要在系统中加入程序代码存储器Boot Flash。
2 音视频外设编程的分层模型及应用
系统中的视频A/D、D/A芯片单元通常连接在TM1300的I2C总线上,其初始化和设置是通过I2C总线访问其内部寄存器实现,音频处理芯片则通过I2C接口总线与TM1300连接。TM1300正是通过这些总线对其进行初始化设置。
在软件上,TriMedia层次化软件架构TSA引入设备库层(Device Library Layer)概念,该层为板级库到应用程序之间提供了一个公共接口。设备库输出两个接口,其架构由图2所示。
在设备库中,基本的API调用函数和功能描述在表1中给出。
表1 设备库API
功能说明
devGetCapabilities 设备兼容性请求,如版本、数据格式等 devOpen 请求设备实例 devInstanceSetup 设备实例设置 devStart 开始运行当前设备实例 devStop 停止运行当前设备实例 devClose 释放当前设备实例例如,视频输出的设备库函数有voCapabilities、voOpen、voInstanceSetup等。在TriMedia的软件开发环境TriMedia SDE 2.2对音视频等设备库函数都有定义,因此使用时只需加入相应的头文件即可。
TriMedia软件架构中,设备库由板级欢欣鼓舞。板级库以板级支持包(BSP)的形式实现,BSP函数由设备库调用,它负责完成对硬件设备的所有初始化设备,高层软件不必深入到底层硬件设备细节就能完成对音视频等硬件设备的编程。BSP允许设计者对底层的接口硬件设备(如Audio D/A)改动,而不必改动该设备的上层编程。如要使用AD1847作为音频A/D、D/A设备,仅需要修改该部分的BSP即可。
在TriMedia SDE2.2中已经附带很多典型器件的BSP,如SAA7113、SAA7121、UDA1344等。开发音视频应用程序时,只需要调用设备库API、设置好数据缓冲区指针、指定相应的断服务程序来处理音视频设备接口到主存储器SDRAM的数据传递即可。用户也可以根据具体硬件自己开发BSP。
3 面向pSOS网络驱动设计与网络编程模型
网络设备的驱动程序,按照网络协议栈分层概念,在这其将其称为网络接口(Network Interface,简称NI),其主要功能是其将最底层的物理网络细节和上层应用程序隔离开,编程时用考虑网络硬件、网络传输介质和网络拓扑等。
在TriMedia软件架构中,可以将网络驱动设计成pSOS网络部件pNA+访问网络接口。这样设计的优点是:上层软件可以使用pSOS系统的pNA+软件部件丰富的系统调用函数,这些函数不但可以操作网络接口,而且可以操作套节字(Socket)进行高级TCP/IP网络编程,而不需用软件来实现TCP/IP协议栈。
本节内容旨在论述基本pNA+部件的网络接口设计和网络编程的基本概念模型,对其中存储配置管理没有作很多具体介绍。论述
《TM1300嵌入式多媒体网络通信系统的设计与实现(第2页)》