娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年03月05日(星期三)

正在發生

2018年03月05日 | 用CH372實現U盤與單片機通信功能

發布者:數字夢行 來源: eefocus關鍵字:CH372  U盤  單片機  通信功能 手機看文章 掃描二維碼
隨時隨地手機看文章

  該系統的程序設計主要包括兩大部分,分別是USB接口部分固件程序和計算機端的CH372驅動程序。前者主要包括了單片機和CH372的初始化、讀寫接口程序和中斷服務程序;后者包括了USB設備的驅動程序和相關應用程序的編寫。這里主要介紹USB接口部分固件程序。
  
  在本例中CH372工作在內部固件模式,通過8位并行數據總線掛接到單片機AT89C51上,并通過端點2上的上傳端點和下傳端點完成USB數據的讀寫。在本地端,CH372芯片以內置的固件程序自動處理了USB通信中的基本事務,在計算機端,提供了驅動程序的應用層調用接口,用以完成USB設備與計算機間的通信。
  
  由于CH372支持內部固件模式,以內置的固件程序自動處理USB通信中的基本事務,所以程序設計不需要考慮USB枚舉配置過程,大大簡化了程序。
  
  1.變量定義和基本操作函數
  
  該部分主要包括了CH372命令、數據端口地址的定義,對操作命令碼的定義,延時函數以及CH372的數據讀寫和寫命令基本操作函數等幾部分內容。
  
  (1)變量的定義。
  
  該部分主要包括了對CH372命令、數據端口地址、USB數據緩沖區以及操作命令代碼的定義,其程序代碼如下:

程序代碼

程序代碼

  (2)基本操作函數。
  
  該部分是進行CH372讀寫的基本操作程序,主要包括以下幾個函數。
  
  函數DelayMs:延時毫秒。
  
  函數Delayus:延時微秒。
  
  函數WR_CH372_CMD_PORT:向CH372命令端口寫命令數據。
  
  函數WR_CH372_DAT_PORT:向CH372數據端口寫數據。
  
  函數RD_CH372_DAT_PORT:從CH372命令端口讀數據。
  
  ①函數DelayMs:在CH372讀寫過程中需要用到毫秒延時,該函數可以滿足要求,程序代碼如下。

程序代碼

  ②函數Delayus:在讀寫命令的過程中經常要用到微秒的延時,該函數可以用來調用,其程序代碼如下。

程序代碼

  ③函數WR_CH372_CMD_PORT:用以向CH372命令端口寫命令數據,周期不小于4μs,如果太快則延時,其程序代碼如下。

程序代碼

  ④WR_CH372_DAT_PORT:用以向CH372數據端口寫數據,周期不小于1.5μs,如果太快則延時,其程序代碼如下。

程序代碼

程序代碼

  ⑤RD_CH372_DAT_PORT:用以從CH372命令端口讀數據,周期不小于1.5μs,如果太快則延時,其程序代碼如下。

程序代碼

  2.系統初始化
  
  系統初始化包括單片機的初始化和CH372的初始化。單片機的初始化主要是完成外部中斷INTO、I/O口等的初始化,程序較為簡單,在這里不做詳細介紹。CH372初始化主要用以其上電復位后,將默認的工作模式(未啟用模式)初始化為外部固件模式或內部固件模式,并檢查CH372的工作狀態是否正常,以便對錯誤進行及時處理。其流程圖如下圖所示。

流程圖

 


  CH372初始化的程序代碼如下。

CH372初始化的程序代碼

  3.讀寫接口函數及中斷服務函數
  
  本例中CH372工作在內部固件模式,使用端點2的上傳端點和下傳端點。CH372芯片專門用于處理USB通信,在檢測到USB總線的狀態變化時或者命令執行完成后,CH372以中斷方式通知單片機進行處理。
  
  該部分主要包括以下3個函數。
  
  函數CH372_RD_EP2:CH372的讀取數據程序。
  
  函數CH372_WR_EP2:CH372的寫數據程序。
  
  函數CH372_lnt0:CH372中斷服務程序。
  
  (1)CH372的讀取數據函數CH372_RD_EP2。
  
  該函數主要用以實現從CH372端點2的上傳端點讀出上位機發來的數據,單次的最大長度為64字節,當收到上位機數據后產生USB_INT_EP2_OUT(02)中斷。其程序代碼如下。

程序代碼

  (2)CH372的寫數據函數CH372_WR_EP2。
  
  該函數主要實現向CH372端點2的上傳端點寫入Length長度的數據,單次最大長度為64字節,當上位機接收數據后產生USB_INT_EP2_IN(OA)中斷。其程序代碼如下。

程序代碼

程序代碼

  (3)CH372的中斷服務函數CH372_1nt0。
  
  該函數為外部中斷服務函數,主要用以響應USB接口芯片的中斷。中斷服務函數的工作步驟如下。
  
  ①單片機進入中斷服務程序時,首先執行GET_STATUS命令獲取中斷狀態。CH372在GET_STATUS命令完成后,將INT#引腳恢復為高電平,取消中斷請求。如果通過上述GET_STATUS命令獲取的中斷狀態是下傳成功,則單片機執行RD_USB_DATA命令從CH372讀取接收到的數據,CH372在RD_USB_DATA命令完成后釋放當前緩沖區,從而可以繼續USB通信。單片機退出中斷服務程序;如果通過上述GET_STATUS命令獲取的中斷狀態是上傳成功,則單片機執行WR._USB_DATA命令向CH372寫入另一組要發送的數據。如果沒有后續數據需要發送,單片機就不必執行WR_USBDATA命令。
  
  ②單片機執行UNLOCK_USB命令。
  
  CH372在UNLOCK_USB命令完成后釋放當前緩沖區,從而可以繼續USB通信。
  
  ③單片機退出中斷服務程序。
  
  如果單片機已經寫入了另一組要發送的數據,則CH372被動地等待USB主機在需要時取走數據,然后繼續等待CH372向單片機請求中斷,否則結束。
  
  CH372的中斷服務函數的程序代碼如下:

CH372的中斷服務函數的程序代碼

CH372的中斷服務函數的程序代碼

  注意事項
  
  1.硬件方面
  
  (1)在設計PCB板時應注意:退耦電容C3和C4盡量靠近CH372的相連引腳;UD+和  UD-信號線貼近平行布線,盡量在兩側提供地線或者覆銅,減少來自外界的信號干擾;盡量縮短XI和XO引腳相關信號線的長度,在相關元器件周邊環繞地線或者覆銅。
  
  (2)為進一步地保護CH372的UD+和UD-信號線,對于需要頻繁帶電插拔USB設備的應用場所或靜電較強的環境,建議在電路中增加USB信號瞬變電壓抑制器件。
  
  (3)對于支持睡眠功能的CH372芯片,在其睡眠期間,應該使CH372的各個I/O引腳(除RSTI引腳)處于懸空或者高電平狀態,避免產生不必要的上拉電流。
  
  2.軟件方面
  
  在單片機程序設計中,應注意命令的延時及讀取數據的時間間隔。主程序在檢測到USB設備連接后,等待數百毫秒再對其進行操作。


關鍵字:CH372  U盤  單片機  通信功能 引用地址:用CH372實現U盤與單片機通信功能

上一篇:基于PROG-100單片機讀寫24C01的應用程序
下一篇:uIP在51單片機上的移植

推薦閱讀

集微網消息,3日晚央視大型紀錄片《大國重器》第二季第六集《贏在互聯》重磅播出,中微半導體設備(上海)有限公司的7納米芯片刻蝕機榮幸被收錄其中。現階段半導體產業能量產的最先進的工藝節點是7nm,臺積電全面領先。在7納米制程設備方面,囊括了5大設備商包括應用材料(Applied Materials)、科林研發(LAM) 、東京威力科創(TEL)、日立先端(Hitach)、...
集微網消息,據businesskorea報道,SK電訊在巴塞羅那MWC 2019與德國電信簽署了一份關于開發5G電信網絡、媒體和安全技術的諒解備忘錄。 SK電訊將與德國電信(Deutsche Telecom)分享5G移動服務和網絡運營方面的技術。德國電信不久將實現5G的商業化。雙方還將在下一代媒體技術和安全技術領域開展聯合開發和業務合作。 通過這項協議,SK電訊...
由于疫情原因,還有很多工程師朋友沒有復工,或者輪休,在這特殊時期,如何保證開發工作順利進行?如何保證努力積累自身的知識儲備?恰逢是德科技(Keysight)的第五屆感恩月召開,測試測量領域相關的工程師可以有足足一個月時間來繼續充實自我。此次感恩月持續時間為3月2日至13日,共有十場測試案例和技巧分享, 一場大師直播,助力工程師解決痛點問題,...
引言舞臺燈光效果設計是舞臺場景設計的重要組成部分。目前國內使用的各種新型燈光設備,如換色器、調光器、電腦燈等大多是從國外進口,國內幾乎沒有生產。為此,我們應國內某舞臺燈不設備廠的要求設計了一種以AT89C2051單片機為控制器的新型舞臺燈光換色器HSQ-1A。該換色器可變換8種色彩,換色精度高,工作可靠。使用時,舞臺上所有的換色器和總控制臺根據...

史海拾趣

問答坊 | AI 解惑

好消息,OTP,FLASH,識別語音IC大量供應

深圳瑞先德科技有限公司是北京瑞先德科技發展中心位于深圳的子公司。我公司在不斷推出各種優質普通語音芯片的同時,又新推出語音識別IC(芯片)及模塊,能與人對話的特定人整詞語音識別專用IC(芯片)及模塊和非特定人整詞語音識別專用IC(芯片)及模 ...…

查看全部問答∨

車載電源系統開關電源的設計

目前世界各國正在研究48VDC汽車用電源系統,歐共體計劃從2008年開始采用48VDC電源系統。如何在48VDC電源系統下兼容12VDC電子設備成為了一個課題。通過線性穩壓電源實現48VDC/12VDC的轉換會產生很大的功率損耗,缺點明顯。 本文提出了一種具有過載 ...…

查看全部問答∨

如何用VS2005進行wince應用程序的開發

如題。請大家給幾個這方面的開發指南,謝謝大家!…

查看全部問答∨

求ce數據庫操作的源代碼

高手給個程序的源代碼,用ce自己的數據庫。…

查看全部問答∨

FPGA實現DDS(verilog)

使用verilog實現dds,源程序和仿真結果…

查看全部問答∨

有關MSP430編程器的問題來問我

<IMG style="CURSOR: hand" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\\nCTRL+Mouse wheel to zoom in/o ...…

查看全部問答∨

哪里有小量規格奇特的49S晶振賣.

本帖最后由 ddllxxrr 于 2016-1-7 16:47 編輯 3.2MHz,35MHz,60MHz,100MHz,49S直插,最好一個地方能買好.幫人問的. …

查看全部問答∨

用SensorTag+MSP430采集環境參數,LabVIEW上位機顯示

用SensorTag+MSP430采集環境參數,LabVIEW上位機顯示         用MSP430MCU采集環境參數,傳感器包括空氣溫濕度傳感器、土壤溫濕度傳感器、光強度傳感器、人體紅外傳感器、氣敏傳感器等等,然后用SensorTag套件傳輸 ...…

查看全部問答∨

TQ6410PDA源碼

天嵌科技獨家推出基于QT4的應用程序開發教程和源碼,歡迎下載。源碼包括如下: …

查看全部問答∨

【曬樣片】+用于低功耗可穿戴應用的符合 Qi (WPC) 標準的無線充電器 解決方案

本帖最后由 fyaocn 于 2015-1-26 15:39 編輯 1、用于低功耗可穿戴應用的符合 Qi (WPC) 標準的無線充電器是用于設計適合低功耗可穿戴設備。其中包括符合 Qi 標準的無線接收器bq25003  和超低電流單節鋰離子線性電池充電器 (bq25100)。 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 华容县| 崇信县| 门头沟区| 蓬溪县| 甘洛县| 平潭县| 轮台县| 漠河县| 天门市| 玉门市| 伊宁县| 武川县| 新建县| 揭东县| 东光县| 舒城县| 湛江市| 防城港市| 敖汉旗| 芜湖市| 固安县| 景宁| 阿拉善左旗| 昌都县| 乐都县| 特克斯县| 视频| 财经| 琼中| 孟连| 曲松县| 汶川县| 东兰县| 安化县| 海安县| 东丰县| 安达市| 呼伦贝尔市| 建始县| 二手房| 临澧县|