基于STM32的MIT-BIH心電數據的D/A回放
1.3 USB全速設備接口
USB外設接口實(shí)現了USB 2.0全速總線(xiàn)和APB1總線(xiàn)間的接口,為PC主機和微控制器所實(shí)現的功能之間提供了符合USB規范的通信連接。PC主機和微控制器之間通過(guò)共享USB端點(diǎn)緩沖區來(lái)實(shí)現數據的傳輸。
STM32芯片內部集成了USB外設,大大減輕了USB電路的設計負擔,只需設計USB接口電路,就可以實(shí)現STM32芯片的電路板的USB通信設計。D/A回放系統選用的USB硬件接口電路如圖3所示:USB上拉電壓接在D+線(xiàn)上,所以本設計USB實(shí)現全速通信,PC機為USB接口供電。USB+連接在GPIO管腳PA11,USB-連接在GPIO管腳PA12,如圖2所示:
2 固件程序設計
固件程序是運行于USB設備中的程序代碼,用于輔助硬件完成USB的功能。該系統固件程序選用的是STM提供的The USB-FS-Device Libra ry固件程序庫。主要完成如下功能:一是處理USB標準請求和用戶(hù)自定義請求;二是根據USB規范設置設備的各種描述符;三是初始化系統得各級中斷和內部端點(diǎn)的配置。在Keil編譯環(huán)境下,利用現成固件程序框架函數,根據設備需求在STM提供的固件程序的框架中添加相應的程序代碼,完成本回放系統的功能目的。
2.1 STM32F103xxUSB固件程序庫簡(jiǎn)介
STM32F103xxUSB固件程序庫是意法半導體公司專(zhuān)為STM32F103XX系列ARM微處理器提供的固件程序庫,主要分為內核層和應用接口層,結構框圖如圖4所示。本文引用地址:http://dyxdggzs.com/article/161152.htm
內核層:該層管理使用USB IP硬件與USB標準協(xié)議兩者間的直接通信。USB庫內核遵從USB 2.0標準并和標準的STM32F103XX固件庫分離。
應用程序接口層:該層為用戶(hù)提供了內核和最終應用程序之間的完整接口。應用接口層和最終應用與固件庫通信來(lái)管理應用的硬件需求。
2.2 固件程序的設計
在本系統的開(kāi)發(fā)中,沒(méi)有對內核層進(jìn)行深入研究和修改,僅對應用接口層進(jìn)行完成設備功能需要的設計。應用層的開(kāi)發(fā)主要包括:系統初始化,主要開(kāi)啟系統和所用外設的時(shí)鐘;USB時(shí)鐘配置,設置并使能USB時(shí)鐘,為48 MHz;USB初始化主要是完成USB設備的枚舉;定時(shí)器模塊配置、DAC和DMA模塊配置主要是完成所用外設的初始化;最后配置好標志位后等待上位機發(fā)送數據。所有代碼都是用庫函數來(lái)完成的,主程序流程圖如圖5所示。
插入USB設備時(shí),主機輪回查詢(xún)各個(gè)USB端口,檢測到D+和D-之間有電壓差,會(huì )識別出有USB設備的插入,然后對設備進(jìn)行枚舉。在設計的D/A回放系統中,枚舉過(guò)程的實(shí)現主要是對USB設備的設備描述符、配置描述符、端口描述符和端點(diǎn)描述符的配置來(lái)實(shí)現的。USB設備枚舉的過(guò)程就是通過(guò)讀取各個(gè)描述符來(lái)獲取USB設備的信息,然后將它配置為其中的一種功能。
評論