位置:51电子网 » 技术资料 » 接口电路

采用PDIUSBD12的USB系统固件程序设计

发布时间:2008/5/27 0:00:00 访问次数:415

        

    

    

    来源:电子技术应用 作者:周 涛 张 辉

    

    摘要:在设计usb系统的过程中,固件程序的编写是非常重要的一个环节,它直接影响到开发产品的数据传输速度。以phillips公司的usb控制芯睡pdiusbd12为例,介绍了在设计开发usb外设中。固件的作用以及固件程序的编写流程,并给出了相应程序。

    

    关键词:usb 固件程序 pdiusbd12 端点 单片机

    

    usb(universal serial bus)即通用串行总线,是现在非常流行的一种快速、双向、廉价、可以进行热插拨的接口,在现在的每一台pc机上都可以找到一对usb接口。在遵循usb1.1规范的基础上,usb接口最高传输速度可达12mb/s:而在最新的usb2.0规范下,更可以达到480mb/s.同时它可以连接127个usb设备,而且连接的方式也十分灵活,既可以使用串行连接,也可以使用集线器(hub)把多个设备连接在一起,再同pc机的usb接口相连.此外,它还可以从系统中直接汲取电流,无需单独的供电系统.usb的这些特点使它获得了广泛的应用.但是使用上的方便则意味着开发上的复杂,主要是编程的复杂性大大的增加了.

    

    在设计开发一个usb外设的时候,开发者主要需要编写三部分的程序: ①固件程序;②usb驱动程序;③客户应用程序.本文主要阐述固件程序的编写.

    

    1 固件要完成的主要工作

    

    固件是fireware的对应中文词,它实际上是单片机的程序文件,其编写语言可以采用c语言或是汇编语言.它的操作方式与硬件联系紧密,包括usb设备的连接usb协议、中断处理等,它不是单纯的软件,而是软件和硬件的结合,开发者需要对端口、中断和硬件结构非常熟悉。固件程序一般放入mcu中,当把设备连接到主机上(usb连接线插入插孔)时,上位机可以发现新设备,然后建立连接。因此。编写固件程序的一个最主要的目的就时让windows可以检测和识别设备。

    

    2 pdiusbd12芯片特点

    

    pdiusbd12是一个性能优化的usb器件,通常用于基于微控制器的系统,并通过高速通用并行接口与微控制器进行通信,而且支持本地dma传输。该器件采用模块化的方法实现一个usb接口,允许在众多可用的微控制器中选择最合适的作为系统微控制器,允许使用现存的体系结构使固件投资减到最小。这种灵活性减少了开发时间、风险和成本。该器件使开发成本低且高效的usb外围设备的一种有效途径。pdiusdb12完全符合usb1.1规范,也能适应大多数设备类规范的设计,如成像类、大容量存储类、通信类、打印类和人工输入设备等。因此,pdiusbd12非常适合做很多外围设备,如打印机、扫描仪、外部大容量存储器(zip驱动器)和数码相机等。现在很多用scsi实现的很多设备如果用usb来实现可以直接降低成本。

    

    pdiusbd12还集成了softconnect、goodlink、可编程时钟输出、低频晶振和终端电阻等特性。所有这些特性都能在系统实现时节省成本,同时在外围设备上很容易实现更高级的usb功能。

    

    3 pdiusbd12固件程序的编写

    

    usb设备启动流程如下:

    

    (1) usb设备接入usb口,发出连接usb命令;

    

    (2) 主机发出读设备描述符两次;

    

    (3) 主机根据设备描述符——厂商id、产品id,启动相应设备驱动程序;

    

    (4) 设备驱动程序初始化usb设备;

    

    ①读设备描述符;

    

    ②读配置描述符;

    

    ③选择接口、端点(管道),确定传输方式。

         

    图1是pdiusbd12的电路连接图。

    

    usb固件程序程序由三部分组成:①初始化单片机和所有的外围电路(包括pdiusbd12);②主循环部分,其任务是可以中断的;③中断服务程序,其任务是对

        

    

    

    来源:电子技术应用 作者:周 涛 张 辉

    

    摘要:在设计usb系统的过程中,固件程序的编写是非常重要的一个环节,它直接影响到开发产品的数据传输速度。以phillips公司的usb控制芯睡pdiusbd12为例,介绍了在设计开发usb外设中。固件的作用以及固件程序的编写流程,并给出了相应程序。

    

    关键词:usb 固件程序 pdiusbd12 端点 单片机

    

    usb(universal serial bus)即通用串行总线,是现在非常流行的一种快速、双向、廉价、可以进行热插拨的接口,在现在的每一台pc机上都可以找到一对usb接口。在遵循usb1.1规范的基础上,usb接口最高传输速度可达12mb/s:而在最新的usb2.0规范下,更可以达到480mb/s.同时它可以连接127个usb设备,而且连接的方式也十分灵活,既可以使用串行连接,也可以使用集线器(hub)把多个设备连接在一起,再同pc机的usb接口相连.此外,它还可以从系统中直接汲取电流,无需单独的供电系统.usb的这些特点使它获得了广泛的应用.但是使用上的方便则意味着开发上的复杂,主要是编程的复杂性大大的增加了.

    

    在设计开发一个usb外设的时候,开发者主要需要编写三部分的程序: ①固件程序;②usb驱动程序;③客户应用程序.本文主要阐述固件程序的编写.

    

    1 固件要完成的主要工作

    

    固件是fireware的对应中文词,它实际上是单片机的程序文件,其编写语言可以采用c语言或是汇编语言.它的操作方式与硬件联系紧密,包括usb设备的连接usb协议、中断处理等,它不是单纯的软件,而是软件和硬件的结合,开发者需要对端口、中断和硬件结构非常熟悉。固件程序一般放入mcu中,当把设备连接到主机上(usb连接线插入插孔)时,上位机可以发现新设备,然后建立连接。因此。编写固件程序的一个最主要的目的就时让windows可以检测和识别设备。

    

    2 pdiusbd12芯片特点

    

    pdiusbd12是一个性能优化的usb器件,通常用于基于微控制器的系统,并通过高速通用并行接口与微控制器进行通信,而且支持本地dma传输。该器件采用模块化的方法实现一个usb接口,允许在众多可用的微控制器中选择最合适的作为系统微控制器,允许使用现存的体系结构使固件投资减到最小。这种灵活性减少了开发时间、风险和成本。该器件使开发成本低且高效的usb外围设备的一种有效途径。pdiusdb12完全符合usb1.1规范,也能适应大多数设备类规范的设计,如成像类、大容量存储类、通信类、打印类和人工输入设备等。因此,pdiusbd12非常适合做很多外围设备,如打印机、扫描仪、外部大容量存储器(zip驱动器)和数码相机等。现在很多用scsi实现的很多设备如果用usb来实现可以直接降低成本。

    

    pdiusbd12还集成了softconnect、goodlink、可编程时钟输出、低频晶振和终端电阻等特性。所有这些特性都能在系统实现时节省成本,同时在外围设备上很容易实现更高级的usb功能。

    

    3 pdiusbd12固件程序的编写

    

    usb设备启动流程如下:

    

    (1) usb设备接入usb口,发出连接usb命令;

    

    (2) 主机发出读设备描述符两次;

    

    (3) 主机根据设备描述符——厂商id、产品id,启动相应设备驱动程序;

    

    (4) 设备驱动程序初始化usb设备;

    

    ①读设备描述符;

    

    ②读配置描述符;

    

    ③选择接口、端点(管道),确定传输方式。

         

    图1是pdiusbd12的电路连接图。

    

    usb固件程序程序由三部分组成:①初始化单片机和所有的外围电路(包括pdiusbd12);②主循环部分,其任务是可以中断的;③中断服务程序,其任务是对

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!