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進行數據傳輸??蓚鬏數臄祿愋陀校篊BW、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视频| 国产精品男人的天堂| 九色综合伊人久久富二代| 日本高清在线看免费观看| 天天综合色网| 天堂av综合网| 欧美国产视频| 国产成人久视频免费| 欧美精品色视频| 亚洲三级色| 久久久久久国产精品mv| 亚洲视频在线观看免费视频| 国产精品自在拍首页视频8| www.亚洲色图.com| 精品福利视频导航| 亚洲欧美h| 国产激爽大片在线播放| 永久免费av网站可以直接看的| 国产白浆一区二区三区视频在线| 最新日韩AV网址在线观看| 乱人伦99久久| 正在播放久久| 美女被操91视频| 午夜毛片免费观看视频 | 精品小视频在线观看| 日韩精品资源| 国产在线观看91精品| 91精品福利自产拍在线观看| 日韩无码视频专区| 国产精品页| 久久精品中文字幕免费| 国产在线一二三区| 又污又黄又无遮挡网站| 香蕉蕉亚亚洲aav综合| 视频二区亚洲精品| 亚洲免费毛片| 亚洲大尺码专区影院| 亚洲爱婷婷色69堂| 亚洲成网777777国产精品| 欧美成人一区午夜福利在线| 国产爽爽视频| 久久伊人操| 国产打屁股免费区网站| 麻豆国产精品一二三在线观看| 婷婷伊人久久| 在线精品亚洲一区二区古装| 欧美另类视频一区二区三区| 精品自窥自偷在线看| 午夜视频免费一区二区在线看| 成人亚洲视频| 亚洲欧美不卡中文字幕| 亚洲第一黄片大全| 久久精品这里只有精99品| 美女潮喷出白浆在线观看视频| 亚洲成人手机在线| 日韩精品无码免费一区二区三区| 在线播放国产99re| 精品视频91| 国产h视频免费观看| 国产乱人伦AV在线A| 久久黄色小视频| 潮喷在线无码白浆| аⅴ资源中文在线天堂| 久久这里只有精品66| a网站在线观看| 天天综合天天综合| 久草视频中文| 欧美丝袜高跟鞋一区二区| 高h视频在线| 99无码中文字幕视频| 国产高清又黄又嫩的免费视频网站| 91蜜芽尤物福利在线观看| 四虎影视无码永久免费观看| 久久青草视频| 婷婷色中文网| 天堂久久久久久中文字幕| 日韩a级片视频| 日韩成人高清无码| 中文字幕欧美日韩高清| www.亚洲一区二区三区| 丰满少妇αⅴ无码区| 在线a视频免费观看|