1
STM32F1 USB外設實現了USB2.0全速總線和APB1總線間的接口。看不懂的話看下圖。
2
STM32F1 USB外設功能描述
USB外設為PC主機和微控制器所實現的功能之間提供了符合USB規范的通信連接。PC主機和微控制器之間的數據傳輸是通過共享一專用的數據緩沖區來完成的,該數據緩沖區能被USB外設直接訪問。這塊專用數據緩沖區的有效大小由所使用的端點數目和每個端點最大的數據包大小所決定(總共有16端點,PMA大小為512字節,可以用多少拿多少,也可以全用),所有端點共享用512字節緩沖區,最多可用于16個單向或8個雙向端點。USB模塊同PC主機通信,根據USB規范實現令牌包的檢測,數據發送/接收的處理,和握手包的處理。整個傳輸的格式由硬件完成,其中包括CRC的生成和校驗。
也就是說16個端點共享一個512字節的緩沖區,我們可以理解為USB HOST就是通過對這些緩沖區的讀寫來實現和設備的數據交互,其實原理大概就是如此。 如果主機發送數據給設備 ,設備會把USB外設接收的數據放入緩沖區,完畢之后通知CPU讀取數據了, 如果主機讀取USB設備的數據 ,CPU會把數據放到緩沖區,然后告訴USB外設可以發送數據了,USB外設會把緩沖區的數據通過總線發送給主機。
2
STM32F1 USB外設主要特征
1.符合USB2.0全速設備的技術規范。
2.可配置1到8個USB雙向端點,我們可以理解為8個IN端點和8個OUT端點,也就是每一個雙向端點可以被配置為一個IN端點和一個OUT端點,但是這兩個端點共用一個端點寄存器,兩個端點的類型必須是一致的(控制端點、中斷端點、批量端點、同步端點)。
3.外設硬件自動為每一個PID和Packet字段生成CRC效驗,并和其他字段組成一個完整的USB Packet。
4.支持控制傳輸、中斷傳輸、同步傳輸、批量傳輸。
5.支持同步傳輸和批量傳輸雙緩沖機制,比如說我們采集ADC或者接收外部傳感器的數據時必須保持數據的完整性,就可以使用雙緩沖機制防止丟數。
6.支持對自己的掛起和恢復操作。
7.幀鎖定時鐘脈沖生成。當收到一個SOF幀開始包,可以生成一個脈沖信號給其他模塊使用,如果SOF中斷使能,會進入SOF中斷處理函數。
-
微控制器
+關注
關注
48文章
7496瀏覽量
151085 -
USB接口
+關注
關注
9文章
700瀏覽量
55582 -
中斷處理
+關注
關注
0文章
94瀏覽量
10961 -
stm32f1
+關注
關注
1文章
56瀏覽量
12188 -
CRC效驗
+關注
關注
0文章
30瀏覽量
1093
發布評論請先 登錄
相關推薦
評論