当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]USB接口单片机SL11R的特点及应用

1 USB接口简介

    USB总线是通用串行总线(Universal Serial Bus)的简称,已经成为PC机的标准接口。目前586以上的PC机基本上都已经配置了USB接口。USB接口具有数据传输速率高、使用方便等特点。USB1.1协议规定的全速传输速率为12Mbit/s,而USB2.0协议所规定的高速传输速率为480Mbit/s,非常适合有大量数据传输的系统。USB设备即插即用,无需重新启动计算机。

2 SL11R介绍

2.1 SL11R概述

    SL11R是Scanlogic公司的SL11产品家族的一员,是一种带USB接口的16位单片机,内部运行频率为48MHz,采用RISC结构,有16位数据总线,32位通用I/O口(GPIO),其中22位可作为地址总线进行寻址(A0~A21),可以直接扩展多种外设。

2.2 SL11R主要特点

    ·USB接口   SL11R的USB接口符合USB1.1协议,有四个端点(endpoint),两种数据传输速率,全速模式为12Mbit/s,低速模式为1.5Mbit/s,并且具有USB协议所规定的四种数据传输方式,即控制传输方式(Control mode)、同步传输方式(Iochronous mode)、中断传输方式(Intrerupt mode)、批量传输方式(Bluk mode)。

    ·硬件资源丰富 SL11R有3K字节的内部RAM、两个定时器、两个外部中断、一个看门狗电路、一个普通串行接口(UART)、32位通用可编程I/O口(GPIO)、一个16位的可编程DMA接口、四个PWM输出引脚及扩展外围元件用的控制引脚。SL11R的外围元件扩展非常方便,扩展EPROM、串行E2PROM、SRAM即EDO DRAM等常用元件时均无需另加控制电路。

    ·多种工作方式  SL11R有四种工作模式,即通用输入输出模式、快速增强并行端口模式、8位/16位DMA模式、DVC8位DMA模式,可根据实际应用场合用软件进行设置。尤其8位DVC模式,可以直接与CCD接口,方便地开发CCD图像采集系统或数码相机。

    ·无需专用开发装置  SL11R内部有3K×16位的程序存储器,类似于80X86的BIOS,已经把单片机的启动配置、联机调试及常用功能等固化在内部,开发者直接调用即可。CPU复位后,内部BIOS会把外部程序存储器中的代码读入内部RAM中执行。如果没有外部程序存储器,SL11R会自动运行在监控状态,与PC机进行联机通讯,并能够在线对线路板上的串行EEPROM进行编程或直接调试程序。由此可见,SL11R无需专用开发装置就可以进行开发,这一点对开发者非常有利。由于SL11R可以在线编程,这就意味着即使用户也可以进行软件升级。这一点对新产品开发很必要,因为有些BUG可能要用户使用后才能发现。

2.3  SL11R工作方式简介

    ·通用输入输出模式(GPIO模式) 在这种模式下,SL11R的外部有32个通用输入输出引脚,其中4个已经分配给USB和UART串行接口专用,其他28个引脚可以通过软件编程,分别设置成输入或输出状态。这种模式一般用于处理普通的外部并行接口类设备的数据,是用途较广的模式。

    ·快速增强并行端口模式(Fast EPP模式)    快速增强并行端口(Fast EPP)是计算机外设的一种标准并行接口。SLR11R在这种模式下,可以直接读写快速EPP并行增强端口。一般用于USB接口和Fast EPP接口的转换。

    ·8位/16位快速DMA模式 SL11R的DMA模式包括邮箱协议(Mailbox Protocol)和DMA协议两种方式。邮箱协议工作方式允许外部处理器与SL11R进行异步通讯,它们通过邮箱的输入、输出寄存器交换数据。DMA协议工作方式一般用于SL11R与外部设备大量的数据高速传输。这种传输无需CPU的干预,而且允许外设直接与DRAM进行数据交换,适合数据量大的场合,如打印机、Modem、扫描仪等。

    SL11R在DMA模式下,还有四个可编程的PWM输出引脚,可以控制DMA模式下的外设与不同的外设通讯,如连接CCD、CIS、COMS等图像传感器或其他外设。只要根据外设的控制要求对PWM编程,就可以控制外设在DMA模式下传输数据。

    ·DVC8位DMA模式    这种模式专门用于与CCD相机接口,SL11R通过串行方式控制CCD相机,图像数据以DMA的方式传给SL11R。

3 SL11R设计应用

3.1 SL11R硬件设计

    SL11R的硬件设计比较简单,因为实际应用中一般的外围元件可以直接扩展。Scanlogic公司在开发套件中提供了一个比较完善的电路图,但对一些简单应用场合显得稍繁琐。事实上SL11R的内部有3K字节的RAM,在数据量不是特别大的场合,无需扩展外部数据存储器。图1是笔者设计的SL11R应用的一个基本电路,已经在实际项目中应用。

 

 

    虽然SL11R经过编程可以使用12MHz晶振,但调试模式不支持12MHz,而且笔者在实际使用过程中发现,如果晶振质量不太好,电路稳定性稍差。故建议在条件许可的情况下,尽量使用48MHz的晶振。

    SL11R的工作电压为3.3V,电路中其它元件均应选用低电压型器件。

    Scanlogic公司提供的SL11R开发工具中附带有调试程序,在线调试时需要使用RS232口,所以电路中设计了RS232接口芯片。

3.2 SL11R固件设计

    SL11R的固件直接控制CPU的运行,程序代码可以存储在外部EPROM或I2C串行EEPROM中,甚至可以存在主机上,在适当的时候下载到SL11R的内部运行。最简单的方式是把代码写到串行EEPROM中,因为SL11R提供了专用的工具软件可以直接对EEPROM在线编程,无需另外的编程装置。

3.2.1 SL11R程序结构

    SL11R汇编语言的语法结构与80X86相似,而且也有内部BIOS。[!--empirenews.page--]

    MCS51等没有BIOS的单片机,需要开发者控制CPU的每一步运行,程序必须在某一段反复循环,程序结构见图2。SL11R由于有BIOS支持,它的程序结构就与MCS51有所区别。SL11R的主体循环是在BIOS内部,实际上用户程序一般只是BIOS的中断响应子程序。也就是说,开发者所编的SL11R的用户程序可以没有主循环体。SL11R的用户程序结构见图3。值得指出的是,开发者也可以摆脱BIOS的控制,程序不在BIOS内部循环。但该程序设计难度较大,因为这时开发者需要自己直接处理USB接口的底层软件,一般没有特殊要求不要使用这种方式。

 

 

3.2.2  SL11R的USB接口编程

    SL11R的大部分功能都可以通过BIOS调用实现。USB的编程也是调用BIOS实现。SL11R复位后会自动配置USB接口,与主机建立USB通讯,一般情况下开发者可以不进行干预。

    开发者主要使用的与USB有关的BIOS软件中断:

    ·USB_STAND_INT、USB_CLASS_INT、USB_VENDOR_

INT、USB_FINISH_INT 这些中断主要是为了实现USB通讯,其中USB_VENDOR_INT是接受主机控制指令中断,主机对SL11R的控制基本上都是通过它实现的。

    ·USB_SEND_INT、USB_RECEIVE_INT这两个中断用于USB发送、接收数据。可以通过配置,分别使用USB的四个端口。

3.3 主机软件设计

    要开发SL11R主机软件,一种简单、快捷的方式是借助于SL11R开发工具包(SL11R DVK)。通过学习工具包中附带的例子程序可以在较短的时间内开发出一个应用软件,用户不需自己开发驱动程序。该工具包可以从ScanLogic公司的网站(www.scanlogic.com)下载得到。工具包中包括的内容有:通用驱动程序、例子程序和开发用的文档资料。对于一般的开发工作可以直接使用工具包中的驱动。用于Windows98系统的三个文件分别是: slusbgen.sys、usb2epp.sys和usbdev.inf。

    在AppWizard (zip)源代码包中,可以找到用VC写成的主机例子程序(usbtest.exe)的源代码。其中有几个文件对利用ScanLogic公司提供的驱动程序来开发应用程序很有帮助。在头文件slusb.h中含有如下函数原型:

    BOOL FAR PASCAL CloseUsbDev(VOID); //关闭USB口

    BOOL FAR PASCAL FindUsbDev(WORD wProd);  //打开USB口

    BOOL UsbVendorCmdRead(BYTE bCmd,WORD wValue,

    WORD wIndex, WORD wLen, PVOID pData);  //发送读控制指令

    BOOL UsbVendorCmdWrite(BYTE bCmd, WORD wValue,

    WORD wIndex, WORD wLen, PVOID pData); //发送写控制指令

    BOOL UsbDataRead(DWORD n, PVOID pData);  //读数据块

    BOOL UsbDataWrite(DWORD n, PVOID pData); //写数据块

    只要在应用程序中灵活用好以上几个函数,做一些简单的数据采集工作是完全可行的,笔者就是借用这几个函数在实际工作中成功完成了应用系统的开发。

    文件devioctl.h包含有slusb.h中需要的常数和宏的定义。在文件usbtest.cpp中定义了控制SL11R操作的指令代码。

    SL11R是一种功能强大的USB接口单片机,它的16位总线及DMA传输模式允许进行大容量数据的高速传输,可以进行高速数据采集。而且SL11R的编程简单,无需专用开发装置,开发成本低,初次接触USB的开发人员可以很容易实现应用系统的开发。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭