欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10740|回復: 1
打印 上一主題 下一主題
收起左側

USB雙虛擬串口,全雙工收發!

[復制鏈接]
跳轉到指定樓層
樓主
ID:75926 發表于 2015-4-4 01:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
背景資料
眾所周知,國內開發學習板80%以上的市場,已被意法半導體占領,鋪天蓋地的中文資料,眾多新生力量
的加入,使意法半導體的DSC芯片逆襲成為眾多高校電子信息工程的必修科目。事實上,NXP等眾多廠家
芯片的實力更強,然而意法半導體在價格上以絕對優勢占領了市場,塵埃落定,其它IC廠家只剩眼紅而已。

桂林電子科技大學,主要使用NXP的Cortex-M3,北航各家都有,主要是ST的,清華大學2014年開始
布局ST公司的芯片研究,同時也不放棄50MHz以下的Cortex-M0,江蘇的大學主要研究其它廠商的
Cortex-M4。現在隨隨便便一個電子專業的畢業生,都對Cortex-M3芯片了如指掌。

一、USB Serial tools 軟件簡介
USB Serial tools 是本人于2012-2013年業余制作的開發調試工具軟件包,通過注冊WINDOWS消息通知,
具備了USB虛擬串口設備插拔檢測的能力,不同于傳統的調試工具,該軟件還可以讓技術開發人員便捷地
查看USB虛擬串口設備的生產廠商信息。

二、USB雙虛擬串口簡介
意法半導體官方在2007-2013年,在多個Cortex-M3系列上實現了各種USB設備,其中包含 CDC 設備,即
USB虛擬串口,經過多年數個版本的更新,意法半導體的USB CDC例程仍然存在很多不足之處,和一些
BUG,本人參考了國外大牛的基本通訊例程,和意法半導體最新的4.0版本CDC例程,經過大約1個星期
斷斷續續的改進,終于實現了USB雙虛擬串口,測試硬件平臺為大蝦開發板
(STM32F103VCT6核心板),軟件平臺為MDK-ARM 4.74。

國外大牛實現的雙虛擬串口,使用自己編寫的驅動文件,沒有經過微軟數字簽名,而且收發通訊只做演示,
并沒有設置任何緩沖,不能作為產品。本人在前人的基礎上修改而成的USB雙虛擬串口,驅動文件在ST
官方inf文件的基礎上修改,能通過微軟數字簽名。

USB Serial tools和通過微軟數字簽名認證的USB雙虛擬串口這一套組合產品

USB Serial tools軟件正準備申請軟件著作權專利。

三、USB雙虛擬串口的測試
利用USB Serial tools軟件對USB雙虛擬串口的部分測試,如圖1-1所示。


圖1-1 USB雙虛擬串口全雙工收發壓力測試



圖1-2  USB Serial Tools對USB雙虛擬串口設備的識別信息


圖1-3   WIN7-X64對 USB雙虛擬串口的識別信息(驅動程序通過微軟數字簽名)



圖1-4  專業工具Bus Hound對USB雙虛擬串口通訊過程的監視情況


Bus Hound對虛擬串口(COM16)的監視及說明:


圖1-5  64字節數據包循環發送測試(10次循環)
備注:
1. 發送方為虛擬串口COM15,發送周期: 30毫秒 數據包長度: 64字節
2. 之所以測試64字節,是因為USB 2.0 Full Speed (USB1.1)通訊數據包最大只有64字節;
    數據包小于64字節時,Windows知道這個包收完就沒有了,會馬上讀取;
   數據包等于64字節時,Windows不知道后面還有沒有發完,要求USB虛擬串口設備再發一個空包,告訴它數據包結束了。


圖1-5  129字節數據包循環發送測試2(5次循環2Mbps)


圖1-5  129字節數據包循環發送測試1(5次循環2Mbps)
備注:
1.Windows驅動每次都讀到129字節,但實際的USB傳輸還是按照3次傳輸,一般是(64+64+1)。
2.注意這里測試波特率提高到1-2Mbps是為了減少數據傳輸時間。
   串口波特率不能提高到1Mbps以上,主要是受到RS485物理層收發芯片及高速光藕的價格影響,另外串口
  速度高,通訊距離也收到限制,常規應用串口波特率基本都在500kbps以內。

四、USB CDC設備可靠性的決定性因素

  USB 雙虛擬串口屬于USB復合設備中的其中一種,也成為雙CDC通訊設備。
  USB CDC設備可靠性,取決于軟硬件系統的整體設計。不管是X893的inf還是stmcdc.inf,
  實際上都是調用微軟的驅動文件usbser.sys,usbser.sys不會出現問題,所以CDC設備的
  可靠性就取決于上位機上層軟件和下位機的整體設計水平。
  上位機有多種CDC設備的工具軟件,可以相互取代,因此下位機底層驅動軟件的魯棒性及
   硬件的可靠性設計就顯得尤為重要(這也是為什么我花很多時間去測試的原因)。

  
   硬件方面,USB的TVS保護和布線,由于時鐘信號只有12MHz,處理比較簡單。

   軟件方面,主要是看設計者對通信的各種情況考慮的是否周全,是否會有bug。
   比如ST公司的工程師參考了中國設計者的代碼,但沒有理解的很深刻,將63字節
   的緩沖定義改為64字節,但在數據包剛好是64字節時,未添加空字節包確認,這個bug至今未修改。

   如無人值守的場合,可以利用USB雙虛擬串口的其中之一,提供一個周期性的信號,
   利用STM32或外部獨立的芯片,監視這個周期性信號是否存在,從而通知STM32F103
   "移除設備",延時一段時間后再恢復工作。當然還需上位機的配合,上位機必須要
   具備USB設備移除和插入的檢測功能,防止自己崩潰,才能恢復正常的工作。

   一般場合,USB設備出現故障的概率很低,不需要另外的監控信號。








分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:272158 發表于 2021-4-14 09:19 | 只看該作者
上例程看看效果,樣品板卡有嗎???
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表