久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
ST官方USB CDC例程詳解(例程不占篇幅)
[打印本頁]
作者:
xiaos
時間:
2015-4-4 01:44
標題:
ST官方USB CDC例程詳解(例程不占篇幅)
6.ST官方USB CDC例程詳解(例程不占篇幅)
A.RS-485的相關問題
ST官方的USB CDC演示例程,沒有涉及到RS485的方向控制。ST官方給出了一個文檔,能夠正確地發出RS485方向控制的
時序。但實際要解決的問題遠遠比想象中復雜。
(1)虛擬串口的發送延遲時間設置
在數據發送時,首先ST的USB設備得按照上位機設置的發送延遲時間去工作,遺憾的是,驅動沒有這樣的設置接口。
ST下位機是這樣實現虛擬串口的數據發送:USB的OUT端點從PC機獲得需要out的數據包(小于或等于64),然后USB的OUT
端點調用串口發送函數,將數據發送出去。
串口不存在RS-485電路時,由于串口通常工作在異步狀態,上位機超過64字節的包,會被分成兩個以上的包發出去,
這不會有什么問題。串口工作在RS485狀態時,需要切換數據方向,這樣會產生很多不必要的換向控制。這些對工作在
異步狀態的電路沒什么大的影響,就是對方驅動接收的數據包零碎了點。
如果ST下位機實現延遲發送時間設置,假設可設置延遲1-10毫秒。如果延遲10毫秒,按照每個毫秒64字節的數量統計,
發送640字節的大數據包時,由于ST下位機由于延遲發送,640字節的數據包被打包發送出去,這樣就不存在RS-485的
反復換向存在,這是理想狀態。在發送控制命令時,FT232RL是專用芯片可以實現1毫秒的延遲,而CH340G采用DSP核
實現,延遲在10毫秒以上,PL2303更不靠譜,和Keil都通訊不上,其它芯片沒試過。
(2)虛擬串口的接收緩沖設置
異步串口通訊最大的難題是接收問題,接收的數據必須及時地轉移到安全的位置,以防止緩沖區溢出。
對于DSP來說,內部有16字節的FIFO,不需要對每個字節的數據進行實時響應,因為它可能有重要的計算任務,
不喜歡總是被通訊打斷。對ARM來說,實時響應是是它的特長,因為它的中斷延遲時間非常短,再加上ARM支持的
內部SRAM通常比DSP豐富,安排個大緩沖不是什么難事。一般DSP設置為4096字節接收緩沖。根據實際應用的不同,
如果需要傳輸超大數據包,可以安排超大的數據緩沖,一般來說小于10240字節都可以,USB1.1按照每毫秒64字節
的通訊速度,10240字節的數據通訊需要10240/64 = 160毫秒,Windows的任務切換大約為30-40毫秒,計算機的驅動
正常,接收都不會出問題。
(3) 阻塞式串口發送占用CPU的問題解決方法
首先是考慮采用中斷式向外發送數據,發送前切換RS485的方向,增加全局發送標志和發送數量,則可以支持發送時的
延遲時間設置。其次是采用DMA的方式,和中斷式類似。這些發送方式都是假設總線處于空閑的狀態,并不判斷RS-485
總線是否被占用。
如果對中斷式或DMA方式的通訊感到煩瑣的話,也可以采用操作系統的方法實現數據發送,換向時序問題
也不用考慮了,對于發送任務,按順序使能發送控制,發送數據,關閉發送使能即可。
(4) RS485的同時發送的碰撞問題解決方法
實際上RS485就是存在這種多個設備同時發送的碰撞現象,所以才催生出來了CAN總線。
如果ST下位機考慮檢測總線狀態,發現總線上有數據,則設置Flag_RXD_Receiving標志為1,同時某個毫秒計時器清0,
并啟動計時,當發現計時超過設置值(1-10)時,設置Flag_RXD_Receiving標志為0,并判斷總線空閑。
如果將Flag_RXD_Receiving標志的判斷添加到發送函數中,則可以避免RS-485總線的數據碰撞問題。
西門子數控系統采用RS485總線通訊,
由于采用的PPI協議,
延遲判斷的時間間隔是50ms,加上該協議非常嚴謹,
所以在工業控制領域應用比較廣泛,可靠性得到了充分的驗證。Windows是強線程弱進程,線程調度時間以10-15
毫秒為單位,任務調度大約是30-40毫秒。PPI協議采用公用通信組件,可協調兩個運行實例,對同一目標進行控制。
而DMX512通訊協議簡單而嚴格,以30毫秒為周期,和RS485總線相比,除了單向之外,88us的數據幀頭也可以通過
STM32F1額外提供,因此該USB Dual RS485設備可作為一個DMX512轉換器使用。由于目前是以USB1.1的通訊速度實現的,
USB1.1的CDC設備,每毫秒最多傳輸64字節,在30毫秒的時間內,最多傳輸 64 * 30 = 1920 字節,所以最多
支持3個
DMX512接口。若采用STM32F205以上芯片,可以外掛USB2.0高速PHY芯片,實現更快的數據傳輸,有人實測STM32F407的
USB2.0 High Speed通訊速度可達20MB/S,達到了大多數場合視頻信號傳輸的要求。
專業型的
USB轉串口芯片, 如CH340G、FT232RL、PL2303HX等,則無法實現DMX512通訊的嚴格要求。
USB
有
4
種不同類型的傳輸方式:控制傳輸
(Control Transfer)
,批量傳輸
(Bulk Transfer)
,中斷傳輸
(Interrupt Transfer)
和實時傳輸
(IsochTransfer)
對于全速USB2.0全速設備,我們關心數據包的大小,同步實時傳輸數據包大小可以到1023字節,其它傳輸方式數據包的大小都是64字節。
作者:
wrk666
時間:
2017-7-14 20:16
哥們,你在哪看到的用407的板子外掛PHY進行高速通信的,我找了半天也沒找到相關資料。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
天堂中文字幕免费一区
|
av超碰在线
|
一级黄色片免费观看
|
国产性生活视频
|
精品欧美一区二区精品久久
|
日韩欧美黄色
|
日韩精品一区在线
|
中文字幕日韩视频
|
国产精品免费在线
|
亚洲天堂网在线观看
|
欧美视频免费在线观看
|
黄色在线免费网站
|
依人在线
|
99精品久久久
|
一级免费视频
|
日韩美女一区
|
亚洲久草
|
国产精品美女久久久
|
免费福利片
|
欧美视频亚洲视频
|
国产午夜在线
|
第一福利丝瓜av导航
|
国产欧美一区二区精品性色超碰
|
欧美精品一级片
|
国产精品免费一区二区
|
www.日韩.com
|
黄色片观看
|
黄色片免费网站
|
精品国产精品三级精品av网址
|
国产精品美女久久
|
九九热这里有精品
|
91成人国产
|
成人免费看片在线观看
|
国产日韩欧美亚洲
|
丁香六月综合
|
91午夜精品亚洲一区二区三区
|
黄色小视频在线观看
|
欧美日韩小视频
|
亚洲影院一区
|
精品一区二区三区在线观看
|
一级片国产
|