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