999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MC9S12UF32的USB接口設計

2021-06-30 11:44:25徐建林聶章龍
科技風 2021年1期
關鍵詞:單片機設備

徐建林 聶章龍

摘要:為了實現對Freescale MC9S12UF32芯片的USB2.0模塊的開發,首先,闡述了MC9S12UF32單片機專門作為高速USB存儲設備接口設計芯片的優勢和特點;然后提出了海量存儲設備的USB2.0接口設計方案,在軟、硬件架構上實現訪問MC9S12UF32芯片USB2.0接口,設計方案加速了USB2.0設備開發,促進了USB2.0設備接口的應用,具有較好的理論和應用價值。

關鍵詞:MC9S12UF32;USB2.0;設備枚舉;Bulk-Only傳輸協議;SCSI命令集

Design of USB interface Based on MC9S12UF32 Chip

Xu Jianlin1 Nie Zhanglong2

1.Bergstrom Company JiangsuChangzhou 213135;

2.Changzhou College of Information Technology JiangsuChangzhou 213164

Abstract:In order to implement development of USB2.0 module of MC9S12UF32 chip,firstly,describing the advantages and characteristics of MC9S12UF32 which is integrated high-speed USB storage device interface.Then,proposing the design scheme of USB2.0 mass storage device interface,the scheme realizes the access to USB2.0 interface of MC9S12UF32 in software and hardware architecture.This scheme not only effectively improves development of USB devices,It can also be widely used in the practical application design of USB2.0 equipment interface,and has good theoretical and application value

Key words:MC9S12UF32;USB2.0;device enumeration;bulk only transport protocol;SCSI command set

1 緒論

USB已成為微機和眾多電子設備的重要標準接口,USB1.1規范的推出已得到了廣泛應用,但隨著電子技術的飛速發展,USB1.1規范已不能滿足電子消費產品的性能要求,特別在傳輸速度和存儲容量方面。因而,很快推出USB2.0規范,快速催生了USB2.0接口的消費電子產品。國外推出了大量集成USB2.0接口的芯片,國內公司對擁有USB2.0接口芯片還在初步研發階段。本文基于16位單片機MC9S12UF32,提出了一種USB2.0設備接口的設計與實現。

2 USB接口類MC9S12UF32芯片特性

MC9S12UF32是恩智浦(源飛思卡爾)公司的HC/S12系列中的16位單片機,它是一款低價位、高性能的單片機,片內資源豐富,FLASH EEPROM空間32K Bytes,RAM空間3.5K Bytes,QRAM隊列1.5K Bytes,集成高速USB2.0接口、集成隊列控制器(IQUE)、SCI接口,通過一條專用內部總線,IQUE模塊可以實現從存儲接口到USB模塊進行高速數據傳輸,最快達到60MB/S。

MC9S12UF32單片機是高速USB存儲設備接口設計的首先,支持高速、全速USB傳輸[1]。構成該款芯片的主要模塊為IQUE模塊、USB2.0接口和存儲控制器接口。CPU是控制與處理的核心,但真正的數據傳輸是通過中介IQUE完成,它與CPU是并行工作,互不干擾。

IQUE模塊的組成:隊列控制器(QUE)、隊列控制器集成模塊(QIM)和QRAM隊列(1.5KB)。集成隊列模塊IQUE數據傳輸是以FIFO的方式寫入或傳出QRAM。

由USB物理層接口(UPHY)和USB設備控制器(UDC20)構成USB2.0模塊,配合IP總線及USB全速和高速協議,實現數據傳輸。模塊的結構框圖如圖1所示。

USB設備控制器模塊通過IP總線與S12內核進行交互。交互的通道為6個獨立的端點。共有5個64字節的端點緩沖區,其中兩個分配給物理端點1,另外三個分配給了物理端點2、3和6。

端點數據是通過IP FIFO總線保存于集成隊列控制器模塊,然后片內模塊才能與USB2.0模塊進行連續的數據通信。

綜上所述,USB接口與存儲器接口間的高速數據通道是由IQUE模塊、USB2.0模塊和存儲設備接口構成的,其中IQUE模塊起到了橋梁的作用。

3 USB2.0設備接口的設計

USB2.0設備接口設計主要由硬件設計和固件設計[2],USB2.0協議中的鏈路層功能是由硬件完成;USB2.0協議及設備子類協議是由固件來完成。基于硬件架構,增強型MCHS12UF32核的USB2.0接口設計應包括以下幾個模塊。

(1)USB傳輸處理模塊。底層硬件送來的各種信號需要USB傳輸處理模塊進行分析處理,Endpoint中接收到的主機命令/數據需要由該模塊上傳到主機命令解析模塊,并返回命令處理結果。

(2)主機命令解析模塊。分析處理USB傳輸處理模塊送來的主機命令,并返回分析處理結。

(3)設備應用處理模塊。外部應用系統接收到具體的操作命令執行,并返回外部器件相關狀態。固件的功能可分為設備枚舉、傳輸控制、命令解析、外部應用操作等幾個過程,如圖2所示。

3.1 USB海量存儲設備固件的設計

IP核固件主要元素為Bulk-Only傳輸協議和SCSI命令集[3]。

3.1.1 固件流程

圖3是大容量USB存儲設備固件工作流程。工程流程中主要是4類中斷處理,即Bulk-In端點中斷、Bulk-Out端點中斷和Command端點0的In中斷及Out中斷。Command端點是實現設備枚舉過程中主機與設備間的交互,Bulk端點是實現枚舉成功后主機與設備間的交互。

3.1.2 設備枚舉

USB設備在接入USB電纜后需要一個枚舉過程,為什么要枚舉?枚舉就是從設備讀取各種描述符信息,這樣主機就可以根據這些信息來加載合適的驅動程序,從而知道設備是什么樣的設備,如何進行通信等,用戶首先需要將枚舉過程中所需要的各種描述符表設置好后存放于指定存儲單元。枚舉過程如圖4所示。

3.1.3 Bulk-Only傳輸控制

USB設備枚舉成功后,就可以通過Bulk端點進行數據傳輸了,Bulk-Only傳輸控制過程如下:

(1)主機通過Bulk-Out端點發送CBW命令包;

(2)設備接收拆分CBW包,解析SCSI命令;

(3)設備執行SCSI命令;

(4)設備通過Bulk-In端點,向主機返回命令狀態包CSW;

(5)設備等待主機的下一個CBW命令包。

3.1.4 SCSI命令解析

特定的海量存儲設備可以過濾無意義的SCSI命令,當設備確認接收到是有效的SCSI命令后,它將根據命令類型和要求,做好數據的發送或接收的準備。

3.2 USB海量存儲設備接收和發送過程設計

傳輸由OUT、IN、SETUP等事務構成,傳輸分為同步傳輸、控制傳輸、中斷傳輸和批量傳輸,批量轉輸和中斷傳輸結構相同,同步傳輸結構簡單,而控制傳輸結構復雜。

3.2.1 USB海量存儲設備的Bulk_Only傳輸類

批量傳輸是USB海量存儲應用的一種[4],另外有巨量中斷傳輸方式,還有其他的傳輸方式等。傳輸中存在三種類型的命令塊數據包:第一種主機發送數據到設備,第二種是不帶數據傳輸的命令塊數據包,第三種是主機要從設備接收數據的命令。

(1)端點0配置。USB設備接入主機時,主機通過默認地址0與默認端口0進行通信。在此期間,主機發出相關描述符請求,并得獲取所需的設備描述符,從而了解設備的情況,再通過Set Address指令設置一個唯一的設備地址,然后,主機就通過該地址與設備通信,不再使用默認地址0,端點0的配置過程也是類似的。

(2)其他端點數據通信。在配置階段,主機獲取到設備端點的使用情況后,現在可以通過這些端點進行特定數據通信。海量存儲設備有BULK ONLY和CBI兩種傳輸方式,使用Bulk Only較為常見,主要是使用特定的Bulk端點,由于Bulk端點的沒有特定的數據格式,所以需要使用某種命令集來約定其傳輸格式,一般配備使用UFI或SCSI命令集。

3.2.2 Bulk-Only傳輸協議

當設備插入到USB后,完成枚舉過程,主機便可識別出為海量存儲設備類型,隨后USB接口與設備間通過Bulk-In和Bulk-Out進行數據傳輸。可傳輸的數據類型有:CBW、CSW和普通數據[5]。CBW是符合SCSI傳輸命令集格式的一種命包,由主機發送給設備。當USB設備解析出CBW包中的SCSI命令并執行后,還需要向主機返回命令執行狀態包CSW,最后,主機根據命令狀態包決定是否繼續發送下一個CBW或數據。

3.3 USB2.0海量存儲設備接口的軟件設計

3.3.1 MCU方軟件

USB模塊化編程,主要包括初始化、主函數和中斷處理函數三部分,主要是實現主機獲取設備描述符,進行端點數據傳輸[6]。初始化函數主要包括UF32單片機和外圍電路接口初始化;中斷處理函數主要是進行各種中斷的處理;主函數主要是完成設備特定要求的流程處理;

利用MCHS12UF32核中的USB端口5進行批量輸入,端口4進行批量輸出,函數框架如下:

voidBulkOnly_Init(void)//USB2.0初始化

{ … }

voidStartUP(void)//設備運行時啟動函數,系統的基本設置

{ … }

IsrProcess(void)/中斷處理函數,,包括對解析SETUP包的處理函數USB_DecodeSETUP

{ … }

CBWProcessor(void)//該函數主要是對各種包(CBW、CSW等)的處理

{ … }

主函數根據MCHS12UF32核的USB設備上電或復位后,首先對所有內部變量初始化,現調用BulkOnly_Init()函數,打開中斷檢測控制端口0是否收到SETUP包,如果收到,則調用函數IsrProcess()。后續一直往復這個過程,直到枚舉成功,即找到海量存儲設備(Mass Storage Device),并安裝好驅動程序,之后就是主機發CBW包,執行Bulk_Only傳輸協議,通過CBWProcessor()函數不斷檢測主機是否發來CBW包,并做相應處理。

3.3.2 PC方軟件

PC方軟件包括USB的驅動程序和主機應用程序兩部分。USB驅程序是一種標準的WDM驅動程序,支持即插即用,提供控制傳輸、中斷傳輸和批傳輸等標準接口函數。主機應用程序是實現與操作系統的交互,操作系統監測到新設備時,自動調用相應的設備驅動程序。為了實現操作的方便性和可視性,利用VC++進行了UI界面設計,通過CreateFile獲得USB句柄,用DeviceIoControl向設備驅動程序發送請求,完成基于MC9S12UF32單片機的USB2.0接口的批量數據傳輸。上位機的主要程序模塊如下:

//獲取設備ezusb0的句柄

DeviceHandle=CreateFile(\\\\.\\ezusb0,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);

//設備初始化

(1)子函數名:IQUE_Module_Init(void),功能:IQUE模塊初始化_使能IQUE模塊;

(2)子函數名:USB_ModuleInit(void),功能:USB模塊初始化-使能USB模塊;

(3)子函數名:USB_InitBulkOnlyTransport(void),功能:USB批量傳輸初始化-配置1x64字節BULK in和1x64字節BULK out;

//數據接收與發送子函數

(1)子函數名:Data_Tx(muint16*pBuffer,muint8 Len),功能:將長度為Len的數據移到pBuffer緩沖區;

(2)子函數名:Data_Rx(muint16*pBuffer),功能:將PC方發來的數據移到pBuffe緩沖區;

(3)子函數名:USB_Move2LocalBuffer(*FR_ptr,*TO_ptr,Len),功能:從指針FR_ptr所指向的位置移動長度為len數據到TO_ptr指針所指;

(4)子函數名:USB_Move2QUE3(FR_ptr,Len),功能:從指針FR_pt處移動長度為len數據到QUE1 FIFO緩沖區;

(5)子函數名:SCSIList28(),功能:Read指令集處理PC方向設備方索取數據;

(6)子函數名:SCSIList2A(),功能:Write指令集處理,PC方向設備方發數據。

4 結語

本文對基于MC9S12UF32 MCU的USB2.0接口的一般開發方法和技術特點、設備端軟件和主機端軟件的設計進行了討論,并給出了海量存儲設備的USB2.0接口設計方案和軟件設計的過程和實現方式,重點對設計枚舉過程和Bulk_Only傳輸進行了較詳細的闡述和研究,希望能對UF32芯片的設計和開發者起到一定的借鑒和拋磚引玉的作用。

參考文獻:

[1]邵貝貝.單片機嵌入式應用的在線開發方法[M].清華大學出版社,2004

[2]閏波,田茂,李廣軍.一種基于層次模型的USB2.0接口芯片核固件的設計與實現[J].半導體技術,29(3)

[3]張宇,程秀玲.基于OpenVPX的高速集成處理器USB接口設計[J].無線互聯科技,2020(04)

[4]陳玉輝,鐘洪聲,李廷軍.基于CY7C68013a的USB2.0接口設計[J].大眾科技,2010(10)

[5]孫瑜,張悅,陳勁操.基于USB接口的多路溫度采集系統設計[J].電力與能源,2017(02)

[6]陳旭輝,楊紅云.USB接口的虛擬多串口通信設備設計[J].單片機與嵌入式系統應用,2020(04)

[7]USB Mass Storage Class-UFI Command Specification[EB/OL]

作者簡介:徐建林(1987— ),男,安徽阜陽人,大專,助理工程師,研究方向:機械設計、非標自動化;聶章龍(1974— ),男,江蘇常州人,碩士,教授/高級工程師,研究方向:嵌入式系統、智能控制。

猜你喜歡
單片機設備
諧響應分析在設備減振中的應用
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
如何在設備采購中節省成本
主站蜘蛛池模板: 国产91透明丝袜美腿在线| 谁有在线观看日韩亚洲最新视频 | 久久毛片基地| 国产麻豆精品在线观看| 99精品热视频这里只有精品7| 国产成人精品在线| 免费播放毛片| 无码日韩人妻精品久久蜜桃| 欧美亚洲激情| 亚洲Aⅴ无码专区在线观看q| 九九热精品视频在线| 老司机aⅴ在线精品导航| 久久人妻xunleige无码| 亚洲人成在线精品| 日韩经典精品无码一区二区| 国产欧美专区在线观看| 亚洲人成日本在线观看| 国产精品lululu在线观看| 亚洲无码高清视频在线观看| 免费看黄片一区二区三区| 国产色爱av资源综合区| a亚洲视频| 2020国产在线视精品在| a色毛片免费视频| 色偷偷综合网| 99这里只有精品在线| 国产成人精品日本亚洲77美色| 欧美乱妇高清无乱码免费| 丁香婷婷激情综合激情| 免费中文字幕一级毛片| www.亚洲国产| 91香蕉视频下载网站| 久久狠狠色噜噜狠狠狠狠97视色| 色精品视频| 国产人在线成免费视频| 欧美第一页在线| 国产麻豆另类AV| 国产综合色在线视频播放线视 | 国产成人三级| 91丝袜乱伦| 精品无码一区二区三区在线视频| 欧美va亚洲va香蕉在线| 国产福利小视频在线播放观看| 色婷婷在线影院| 四虎AV麻豆| 国产乱肥老妇精品视频| 国产欧美中文字幕| 国产高清色视频免费看的网址| 久草国产在线观看| 国产成人精品第一区二区| AV天堂资源福利在线观看| 欧美亚洲国产日韩电影在线| 五月天综合婷婷| 国产丝袜丝视频在线观看| 成人午夜亚洲影视在线观看| 国产成人8x视频一区二区| 中文字幕久久亚洲一区| 国产成人精品男人的天堂| 国产青榴视频在线观看网站| 亚洲国产精品一区二区第一页免| 精品视频福利| 亚洲毛片一级带毛片基地| 亚洲视频a| 欧洲欧美人成免费全部视频| 国产另类视频| 国产精品无码一二三视频| 久久亚洲中文字幕精品一区| 精品国产香蕉在线播出| 亚洲第一成年人网站| 亚洲欧美一区在线| 91麻豆国产视频| av午夜福利一片免费看| 久久午夜夜伦鲁鲁片无码免费| 亚洲AV无码精品无码久久蜜桃| 成年人久久黄色网站| 中文字幕乱码中文乱码51精品| 国产欧美日本在线观看| 欧美精品v欧洲精品| 国产在线视频二区| 久久久久人妻一区精品色奶水 | 亚洲欧美一区二区三区图片| 91精品久久久无码中文字幕vr|