C8051F320的數據采集系統USB接口設計
發布時間:2009/10/21 10:08:28 訪問次數:575
1 引言
隨著現代工業生產和科學研究對數據采集系統的要求日益提高,傳輸速度、糾錯能力和操作安裝的簡易性是人們進行采集數據時一直關注的問題,這使得數據通訊技術不可避免地成為了其中的關鍵技術,而數據采集系統采用何種接口進行數據通訊是影響系統整體效率的重要因素之一。usb(通用串行總線)總線接口技術由于具有速度快、設備安裝和配置容易、易于擴展、能夠采用總線供電及使用靈活等優點,已逐漸成為現代數據傳輸的發展趨勢[1-5]。
本文給出了一種基于c8051f320的數據采集系統usb 接口設計方案,完成了usb 接口硬件電路設計和軟件程序開發,并將其應用到倉庫視頻監控系統中,實現了快速、方便的數據采集和傳輸。
2 c8051f320 單片機原理
2.1 c8051f320 的主要特點
c8051f320 是由美國cygnal 公司推出的c8051f 系列單片機中的一款用于usb 設備的小型單片機。該器件內部集成有2304 byte ram 和16k byte 的flash 存儲器。由于利用該芯片進行設計時可以不需要任何外部元件(包括電阻和晶振),因而是小型usb 應用的理想選擇。與其它同類usb 產品相比,c8051f320 主要具有如下一些特點:
① 滿足 usb2.0 協議;
② 可在全速(12 mbps)或低速(1.5 mbps)下運行;
③ 集成有一個時鐘源,對于全速或低速傳輸均可不用外部晶振;
④ 支持 8 個靈活通用的usb 端點;
⑤ 內置一個 1k 的usb 專用緩沖存儲器;
⑥ 集成了一個 usb 接收器,不需要外部電阻。
⑦ 具有高速增強型 8051 mcu 內核,該mcu 內核采用流水線式指令結構,70%的指令執行時間為一個或兩個系統時鐘周期,處理速度可達25mips(時鐘頻率為25mhz 時)。
此外,c8051f320 還有許多其它特性,如支持在系統編程(isp),帶有可編程的數字i/o和數字交叉開關,可提供全速、非侵入式的在系統片內調試電路等。
2.2 c8051f320 的引腳及封裝
c8051f320 的引腳排列如圖1 所示,封裝為tqfp-32。其中vdd 為數字電源;gnd為模擬地;regin 為5v 校準器的輸入端;rst/c2ck 為設備的復位引腳或ec2 調試接口的時鐘信號;p3.0/c2d 為端口p3.0 或ec2 調試接口的雙向信號引腳;vbus 為usb 總線輸入腳;d+為usb 的d+;d-為usb 的d-;p0.2/xtal1 為端口0.2 或外部晶振輸入;p0.3/xtal2 為端口p0.3 或外部晶振輸出;p0.6/cnvstr 為端口p0.6 或adc0 外部轉換開始輸入腳;p0.7/vrff 為端口p0.7 或外部參考電源的輸入端或輸出端;p0.0、p0.1、p0.4、p0.5、p1.0~p1.7、p2.0~p2.7 均為相應的端口引腳。
3 usb 接口電路設計
3.1 usb 接口硬件電路設計
由于 c8051f320 微控制器內部集成了一個usb 接收器,簡單易用,因此,用它進行usb 接口的硬件設計也顯得比較簡單。主要包括兩部分的內容,一是接口轉換模塊供電方式的選擇,二是usb 引腳的連接。圖2 是其usb 接口電路圖。模塊選擇自供電模式,圖2所示的整個模塊的供電電源都來自外部5v 電源。c8051f320 中的usb 收發器內部已經集成了上拉電阻,不需要任何外部器件就可直接與usb 接口相連。
3.2 usb 設備固件程序設計
usb 設備固件程序是usb 設備必須實現的部分,它的主要目的是:當usb 設備連接到主機上時,主機可以發現新設備,然后建立連接并完成數據傳輸任務,也就是能夠讓上位機能夠正常檢測和識別usb 設備。因此,本固件設計的目的是使主機能夠識別c8051f320設備,以及正確的與它進行通信。同時為了在usb 上達到最大的傳輸速度,c8051f320 固件設計成中斷驅動。
c8051f320 固件分為兩個部分:前臺主程序和后臺中斷服務程序(isr)。在usb 固件程序中,最重要的工作就是usb 描述符的定義和usb 傳輸中斷的處理。
usb 描述符是usb 協議定義的一套描述設備功能和屬性的固定結構的描述語言。
usb2.0 中的描述符包括設備描述符、配置描述符、接口描述符、端點描述符等8 種標準描述符和其它一些非標準描述符。usb 主機通過usb 描述符完成設備類型的識別和配置,客戶端驅動程序通過這些信息來正確訪問設備并與其通信。本文在對c8051f320 的配置中除了端點0 外還用到了端點1 和端點2,它們的描述符如表1 所示。
usb 傳輸中斷的處理也是一個重要的部分。傳輸中斷的處理由isr 和前臺主程序共同完成。這兩部分的數據交換通過事件標志和數據緩沖區來實現[6]。當c8051f320 的usb 引擎從主機收到一個數據包時,就會產生一個中斷請求,c8051f320 立即響應中斷,通過讀取usb 功能控制器的三個中斷寄存器cmint、in1int 和out1int 來判斷中斷來源(usb復位中斷、端點0 中斷、端點1 輸入中斷、端點2 輸出中斷),然后根據不同的中斷來源跳入相應的處理模塊以進行不同的中斷處理,并在處理完畢后返回。其中,端點0 是每個usb設備都必須支持的默認控制傳輸端點,主要用于主機對usb 設備的配置、狀態信息的獲取和設備錯誤的糾正等,它的中斷處理模塊由控制輸出和控制輸入兩部分組成。每次傳輸首先由設置事務開始,然后根據設置事務數據不同的中斷來源跳入相應的處理模塊以進行不同的中斷處理,并在處理完畢后返回。同時在isr 中,固件將數據包從c8051f320 的usb 引擎內部緩沖區移到一個自定義的數據緩沖區,并在隨后請求清零其內部緩沖區,以使其能夠繼續接收新的數據包。然后返回到主循環,檢查自定義緩沖區內是否有新的數據并開始其它的任務。由于這種結構,主循環只用檢查自定義緩沖區內需要處理的新數據,專注于新數據的處理,而isr 也能夠以最大速度進行數據的傳輸。這樣,程序對usb 的操作更加簡單,也便于程序的維護。主程序和端點0 的控制傳輸程序流程分別如圖3、圖4 所示。端點1 和端點2 的程序流程與之類似。
4 數據的接收和顯示
在主機中安裝基于 c8051f320 usb 設備的驅動程序(可以在新華龍網站上下載)之后,該設備就會被默認成該主機的一個串口,因此在主機的處理中可以將它當作一個虛擬的串口進行處理,讀取其數據就如讀串口數據一樣方便,很快就能夠建立快速通信平臺。
主機軟件采用 vc++開發的,串行通信部分采用api 函數直接進行編寫。它為應用程序提供了通過串行接口收發數據的方法。主機軟件使用api 文件函數進行串口通信的控制。具體函數以及使用,可以查閱msdn。
將基于 c8051f320 的usb 接口電路應用到倉庫視頻監控系統中,其系統結構框圖如圖5 所示。
5 結束語
本文利用c8051f320 速度快、處理能力強、結構簡單等特點,設計了一種基于c8051f320的數據采集系統usb 接口方案,給出了usb 接口電路具體的設計方法,并對主機的數據和顯示進行了開發。將設計的usb 接口應用到倉庫視頻監控系統中,能夠實現快速、方便的數據傳輸,數據通信能達到上兆的傳輸速率,滿足了實時、快速傳遞數據的要求。
1 引言
隨著現代工業生產和科學研究對數據采集系統的要求日益提高,傳輸速度、糾錯能力和操作安裝的簡易性是人們進行采集數據時一直關注的問題,這使得數據通訊技術不可避免地成為了其中的關鍵技術,而數據采集系統采用何種接口進行數據通訊是影響系統整體效率的重要因素之一。usb(通用串行總線)總線接口技術由于具有速度快、設備安裝和配置容易、易于擴展、能夠采用總線供電及使用靈活等優點,已逐漸成為現代數據傳輸的發展趨勢[1-5]。
本文給出了一種基于c8051f320的數據采集系統usb 接口設計方案,完成了usb 接口硬件電路設計和軟件程序開發,并將其應用到倉庫視頻監控系統中,實現了快速、方便的數據采集和傳輸。
2 c8051f320 單片機原理
2.1 c8051f320 的主要特點
c8051f320 是由美國cygnal 公司推出的c8051f 系列單片機中的一款用于usb 設備的小型單片機。該器件內部集成有2304 byte ram 和16k byte 的flash 存儲器。由于利用該芯片進行設計時可以不需要任何外部元件(包括電阻和晶振),因而是小型usb 應用的理想選擇。與其它同類usb 產品相比,c8051f320 主要具有如下一些特點:
① 滿足 usb2.0 協議;
② 可在全速(12 mbps)或低速(1.5 mbps)下運行;
③ 集成有一個時鐘源,對于全速或低速傳輸均可不用外部晶振;
④ 支持 8 個靈活通用的usb 端點;
⑤ 內置一個 1k 的usb 專用緩沖存儲器;
⑥ 集成了一個 usb 接收器,不需要外部電阻。
⑦ 具有高速增強型 8051 mcu 內核,該mcu 內核采用流水線式指令結構,70%的指令執行時間為一個或兩個系統時鐘周期,處理速度可達25mips(時鐘頻率為25mhz 時)。
此外,c8051f320 還有許多其它特性,如支持在系統編程(isp),帶有可編程的數字i/o和數字交叉開關,可提供全速、非侵入式的在系統片內調試電路等。
2.2 c8051f320 的引腳及封裝
c8051f320 的引腳排列如圖1 所示,封裝為tqfp-32。其中vdd 為數字電源;gnd為模擬地;regin 為5v 校準器的輸入端;rst/c2ck 為設備的復位引腳或ec2 調試接口的時鐘信號;p3.0/c2d 為端口p3.0 或ec2 調試接口的雙向信號引腳;vbus 為usb 總線輸入腳;d+為usb 的d+;d-為usb 的d-;p0.2/xtal1 為端口0.2 或外部晶振輸入;p0.3/xtal2 為端口p0.3 或外部晶振輸出;p0.6/cnvstr 為端口p0.6 或adc0 外部轉換開始輸入腳;p0.7/vrff 為端口p0.7 或外部參考電源的輸入端或輸出端;p0.0、p0.1、p0.4、p0.5、p1.0~p1.7、p2.0~p2.7 均為相應的端口引腳。
3 usb 接口電路設計
3.1 usb 接口硬件電路設計
由于 c8051f320 微控制器內部集成了一個usb 接收器,簡單易用,因此,用它進行usb 接口的硬件設計也顯得比較簡單。主要包括兩部分的內容,一是接口轉換模塊供電方式的選擇,二是usb 引腳的連接。圖2 是其usb 接口電路圖。模塊選擇自供電模式,圖2所示的整個模塊的供電電源都來自外部5v 電源。c8051f320 中的usb 收發器內部已經集成了上拉電阻,不需要任何外部器件就可直接與usb 接口相連。
3.2 usb 設備固件程序設計
usb 設備固件程序是usb 設備必須實現的部分,它的主要目的是:當usb 設備連接到主機上時,主機可以發現新設備,然后建立連接并完成數據傳輸任務,也就是能夠讓上位機能夠正常檢測和識別usb 設備。因此,本固件設計的目的是使主機能夠識別c8051f320設備,以及正確的與它進行通信。同時為了在usb 上達到最大的傳輸速度,c8051f320 固件設計成中斷驅動。
c8051f320 固件分為兩個部分:前臺主程序和后臺中斷服務程序(isr)。在usb 固件程序中,最重要的工作就是usb 描述符的定義和usb 傳輸中斷的處理。
usb 描述符是usb 協議定義的一套描述設備功能和屬性的固定結構的描述語言。
usb2.0 中的描述符包括設備描述符、配置描述符、接口描述符、端點描述符等8 種標準描述符和其它一些非標準描述符。usb 主機通過usb 描述符完成設備類型的識別和配置,客戶端驅動程序通過這些信息來正確訪問設備并與其通信。本文在對c8051f320 的配置中除了端點0 外還用到了端點1 和端點2,它們的描述符如表1 所示。
usb 傳輸中斷的處理也是一個重要的部分。傳輸中斷的處理由isr 和前臺主程序共同完成。這兩部分的數據交換通過事件標志和數據緩沖區來實現[6]。當c8051f320 的usb 引擎從主機收到一個數據包時,就會產生一個中斷請求,c8051f320 立即響應中斷,通過讀取usb 功能控制器的三個中斷寄存器cmint、in1int 和out1int 來判斷中斷來源(usb復位中斷、端點0 中斷、端點1 輸入中斷、端點2 輸出中斷),然后根據不同的中斷來源跳入相應的處理模塊以進行不同的中斷處理,并在處理完畢后返回。其中,端點0 是每個usb設備都必須支持的默認控制傳輸端點,主要用于主機對usb 設備的配置、狀態信息的獲取和設備錯誤的糾正等,它的中斷處理模塊由控制輸出和控制輸入兩部分組成。每次傳輸首先由設置事務開始,然后根據設置事務數據不同的中斷來源跳入相應的處理模塊以進行不同的中斷處理,并在處理完畢后返回。同時在isr 中,固件將數據包從c8051f320 的usb 引擎內部緩沖區移到一個自定義的數據緩沖區,并在隨后請求清零其內部緩沖區,以使其能夠繼續接收新的數據包。然后返回到主循環,檢查自定義緩沖區內是否有新的數據并開始其它的任務。由于這種結構,主循環只用檢查自定義緩沖區內需要處理的新數據,專注于新數據的處理,而isr 也能夠以最大速度進行數據的傳輸。這樣,程序對usb 的操作更加簡單,也便于程序的維護。主程序和端點0 的控制傳輸程序流程分別如圖3、圖4 所示。端點1 和端點2 的程序流程與之類似。
4 數據的接收和顯示
在主機中安裝基于 c8051f320 usb 設備的驅動程序(可以在新華龍網站上下載)之后,該設備就會被默認成該主機的一個串口,因此在主機的處理中可以將它當作一個虛擬的串口進行處理,讀取其數據就如讀串口數據一樣方便,很快就能夠建立快速通信平臺。
主機軟件采用 vc++開發的,串行通信部分采用api 函數直接進行編寫。它為應用程序提供了通過串行接口收發數據的方法。主機軟件使用api 文件函數進行串口通信的控制。具體函數以及使用,可以查閱msdn。
將基于 c8051f320 的usb 接口電路應用到倉庫視頻監控系統中,其系統結構框圖如圖5 所示。
5 結束語
本文利用c8051f320 速度快、處理能力強、結構簡單等特點,設計了一種基于c8051f320的數據采集系統usb 接口方案,給出了usb 接口電路具體的設計方法,并對主機的數據和顯示進行了開發。將設計的usb 接口應用到倉庫視頻監控系統中,能夠實現快速、方便的數據傳輸,數據通信能達到上兆的傳輸速率,滿足了實時、快速傳遞數據的要求。
上一篇:LED燈泡內部構造揭秘
下一篇:最便宜Android手機