當前位置:首頁 > 單片機 > 單片機
[導讀] 引言  USB是一種快速的、雙向同步傳輸?shù)摹⒘畠r并可以進行熱插拔的串行接口。利用USB總線技術,開發(fā)適用于科學研究和工業(yè)牛產(chǎn)的各種儀器儀表設備,借以取代傳統(tǒng)計算機測控系統(tǒng)中采用串行RS232或并行接口的儀器儀表

 引言

  USB是一種快速的、雙向同步傳輸?shù)?、廉價并可以進行熱插拔的串行接口。利用USB總線技術,開發(fā)適用于科學研究和工業(yè)牛產(chǎn)的各種儀器儀表設備,借以取代傳統(tǒng)計算機測控系統(tǒng)中采用串行RS232或并行接口的儀器儀表設備,使計算機測控系統(tǒng)更加高效實時,方便靈活。

  利用USB總線的數(shù)據(jù)采集方案有兩種,一種是采用普通單片機加上專用的USB通信芯片。該方案可充分利用開發(fā)人員原有的硬件資源和軟件知識,開發(fā)成本較低,但系統(tǒng)的設計和調(diào)試較為麻煩,且電磁兼容性差,容易造成主機不能識別USB設備。另一種是利用具有USB接口功能的單片機。使用這些專用芯片構(gòu)成的數(shù)據(jù)采集系統(tǒng)電路設計簡單,調(diào)試方便,電磁兼容性好。然而,目前大部分具有USB功能的單片機都是專門針對個人計算機外圍設備或消費市場的需要而設計的,忽略了嵌入式工程師的需要。Microchip公司新款PIC18F4550系列單片機的問世,為廣泛的嵌入式應用增添了全速USB的優(yōu)勢,即使遇到惡劣的操作環(huán)境或在只能不定時地連接個人計算機的情況下,也能正常工作。

  本文以光柵位移傳感器檢測系統(tǒng)的設計為背景,詳細介紹了帶全速USB接口的單片機PIC18F4550的應用設計方法。

  1 PIC18F4550介紹

  PIC18F4550是Microchip公司最新生產(chǎn)的帶全速USB接口的8位高檔單片機,芯片為40/44腳封裝。該單片機除了具有PIC單片機所特有的精簡指令集(RISC)、數(shù)據(jù)總線和指令總線相互獨立的哈佛(Harvard)結(jié)構(gòu)等特點外,還配備了自編程閃存存儲器以及納瓦節(jié)能技術,工作頻率達48 MHz,數(shù)據(jù)傳輸速率高達12 Mbps。另外,還具有Microchip先進PMOS電可擦除單元(PEEC)閃存技術,耐擦寫次數(shù)可高達100萬次,而數(shù)據(jù)保存期能超過40年。因而該芯片有很強的控制能力和靈活的工作方式。新器件的全速USB 2.0接口具有1 KB雙重存取RAM,支持高達32個端點(雙向16對)和2種數(shù)據(jù)傳輸速率(即全速模式1 2 Mbps和低速模式1.5 Mbps),具有USB協(xié)議所規(guī)定的4種數(shù)據(jù)傳輸方式(控制傳輸方式、中斷傳輸方式、批量傳輸方式和實時傳輸方式)。該接口包括一個片上收發(fā)器和一個并行流端口,能把數(shù)據(jù)直接傳送到外部的設備,不僅減小了CPU的開銷,而且大大增強了系統(tǒng)的抗干擾能力和工作可靠性。

  PIC18F4550的硬件資源非常豐富,包含33個I/O,I/O端口為端口A、B、C、D、E;具有多個中斷源和1個中斷優(yōu)先級選擇,4個定時器,32 KB程序閃存,256字節(jié)EEP-ROM數(shù)據(jù)存儲器,2 048字節(jié)數(shù)據(jù)隨機存儲器以及8×8硬件乘法器;集成了13通道的10位A/D轉(zhuǎn)換器,2個CCP(比較/捕捉/PWM)模塊,1個增強型CCP模塊和1個看門狗;具有省電功能的休眠模式;1個USART不僅支持異步與同步的串行通信,而且支持LIN總線;2個模擬比較器,支持I2C和SPI通信的主控同步串行端口,可編程欠壓復位及低電壓檢測電路等。

  PIC18F4550單片機的一個關鍵特性在于它配備了32 KB自編程增強型閃存,使得設計人員可以通過USB端口對最終應用進行現(xiàn)場升級。結(jié)合新器件配備的一系列片上外設和納瓦技術(nanoWatt)的功耗管理功能,使其非常適用于多種嵌入式應用,包括工業(yè)、醫(yī)療、汽車、電池供電和消費類產(chǎn)品等。

  2 PIC18F4550的設計應用

  2.1 光柵位移傳感器的基本工作原理、特點

  光柵位移傳感器的基本工作原理是利用一對光柵,其中一塊是固定的,而另一塊是運動的。當它們發(fā)生相對運動并有光通過兩者時,能夠獲得相當于干涉儀中得到的條紋信號,即所謂的“莫爾條紋信號”。對于一對計量光柵,彼此移動一條刻槽(現(xiàn)代計量光柵常采用4~250 L/mm)就移動一條莫爾條紋。條紋寬度不受波長影響,并且條紋較寬可進行內(nèi)插,由于誤差平均效應,因而可以獲得很高的精度。與普通位移傳感器相比,它有以下幾個特點:?、?精度高。光柵位移傳感器在大量程測量長度或直線位移方面僅僅低于激光干涉?zhèn)鞲衅?;在圓分度和角位移測量方面,光柵式傳感器屬于精度最高的。

 ?、?大量程測量兼有高分辨率。感應同步器和磁柵式傳感器也具有大量程測量的特點,但分辨力和精度都不如光柵位移傳感器。

  ③ 可動態(tài)測量,易于實現(xiàn)測量及數(shù)據(jù)處理自動化。

 ?、?具有較強的抗干擾能力,對環(huán)境條件的要求不像激光干涉?zhèn)鞲衅髂敲磭栏?,但不如感應同步器和磁柵式傳感器的適應性強。油污和灰塵會影響它的可靠性,主要適合于在實驗室和環(huán)境較好的車間使用。

  2.2 PIC18F4550硬件設計

  PIC18F4550的USB接口硬件設計比較簡單,而單片機控制的外圍設備屬于一般單片機設計,可以參照一般PIC單片機的設計方法。對于USB接口,Microchip公司提供了一套開發(fā)套件(Demo板)幫助使用者開發(fā)自己的產(chǎn)品。它提供了應用程序、驅(qū)動程序和固件,幫助使用者熟悉USB的工作過程;同時,可以直接利用開發(fā)套件來擴展外圍設備。

  圖1是一個光柵位移傳感器檢測系統(tǒng)硬件電路框圖,主要實現(xiàn)數(shù)據(jù)的采集、處理、傳輸和PWM脈沖的產(chǎn)生等。從光柵傳感器輸入的信號有5路:±sin,±cos以及零窗信號zero。經(jīng)差分放大電路合成,分3路進入PIC單片機模擬量輸入口進行A/D轉(zhuǎn)換;同時,經(jīng)差分放大電路合成后的sin、cos信號經(jīng)過零比較器后轉(zhuǎn)換成數(shù)字脈沖信號,然后經(jīng)D觸發(fā)器和“與”門電路完成光柵位移的辨向。PIC單片機T0和T1口接收來自“與”門電路的數(shù)字脈沖,完成光柵位移的計數(shù)(計算光柵尺移動的完整光柵數(shù));PIC單片機RC1口輸出4 MHz的PWM脈沖信號作為D觸發(fā)器的CP信號。計算機的USB接口兩根數(shù)據(jù)線分別接PIC18F4550的D+和D-口,用于完成計算機和單片機之間的數(shù)據(jù)通信。計算機的USB電源一方面為PIC微處理器提供能源,另一方面通過電源模塊轉(zhuǎn)換成±12 V電源,為運放電路提供正負電源。

  2.3 單片機軟件部分設計

  單片機的軟件部分主要完成光柵位移傳感器的數(shù)據(jù)采集、A/D轉(zhuǎn)換、計算光柵位移傳感器的正向、反向莫爾條紋的個數(shù)、為數(shù)字電路提供CP脈沖以及完成USB的通信等工作。圖2是單片機軟件部分的流程圖。

  2.4 PIC18F4550的固件設計

  微芯公司提供了一系列的USB寄存器,使用這些寄存器可以完成USB通信。大多數(shù)的USB通信都是通過中斷來完成的,在USB中斷服務程序內(nèi),要實現(xiàn)輸入/輸出接口,允許大多數(shù)的USB程序在后臺完成。從應用的觀點來看,枚舉過程和數(shù)據(jù)通信的發(fā)生好像沒有聯(lián)系。

  對于單片機控制程序,目前沒有任何廠商提供自動生成固件(firmware)的工具,因此所有程序都要由自己手工編制。由于USB協(xié)議的復雜性,并且考慮 到廣大客戶的需求,因此,Microchip公司在推出PIC18F4550系列芯片時,提供了面向不同客戶群的DEMO程序,這就大大減輕了系統(tǒng)開發(fā)人員的負擔,同時縮短了開發(fā)周期。本系統(tǒng)的設計就是在Microchip公司提供的DEMO程序的基礎上,進行必要的修改來完成的。本設計的具體固件主要由以下8個文件組成。

 ?、?main.c:系統(tǒng)的主程序,包括InitializeSystem()和USBTasks(void)兩個子程序,主要完成系統(tǒng)的初始化以及其他各種子程序的調(diào)用。

 ?、?usb9.c:實現(xiàn)的是USB協(xié)議第9章的功能,包括枚舉總線的接口和核心功能,以及USB的中斷服務程序。它處理由USB用戶所產(chǎn)生的所有的中斷。在這個程序中,主要實現(xiàn)對描述符的枚舉以及休眠、復位功能,主要包括USBCheckStdRequest(void)、USBStdGetDscHandler(void)和USBStdFeatureReqHandler(void)等5個子程序。

③ usbctrltrf.c:主要實現(xiàn)USB控制傳輸所需的各種功能,主要由USBCtrlTrfSetupHandler(void)、USBCtr-lEPServiceComplete(void)和USBPrepareForNextSetup-Trf(void)等8個子程序組成。

  ④ usbdrv.c:主要實現(xiàn)與USB驅(qū)動相關的功能,包括檢查總線狀態(tài)、USB模塊使能、USB模塊掛起、遠程喚醒等功能;主要由USBSuspend(void)、USBModuleEnable(void)、USBSoftDetach(void)和USBDriverService(void)等12個子程序組成。

 ?、?usbdsc.c:主要是對該系統(tǒng)的描述,包括廠商、產(chǎn)品號等的描述。

  ⑥ usbgen.c:對USB設備類的配置(在這里把它配置為通用USB類),主要包括USB通用類的初始化端點和讀寫,由USBGenInitEP(void)、USBGenRead(byte*buffer,byte len)和USBGenWrite(byte*buffer,bytelen)三個子程序組成。

 ?、?usbmmap.c:主要用于檢查USB在通信過程中,端點號與BDT(緩沖器描述符表)之間的匹配。

 ?、?user.c:直接面向用戶的應用程序,可以幫助用戶完成自己的初始化配置、處理數(shù)據(jù)的讀/寫、I/O口的處理,設備的請求等。本設計中下位機的大部分功能都是由這個程序來實現(xiàn)的,比如A/D轉(zhuǎn)換及其數(shù)據(jù)的讀取、1MHz的PWM波形產(chǎn)生等。它主要包括UserInit(void)、BlinkUSBStatus(void)、ServiceRequests(void)、ProcessIO(void)、ResetTempLog(void)和ReadPOT(void)六個子程序。

  2.5 PC機軟件編程

  要編寫PC機上的軟件,可以利用Microchip公司提供的開發(fā)工具包。該工具包是一個安裝程序,安裝后可以在安裝目錄下找到USB通用的驅(qū)動程序、用Borland C編寫的應用程序、一些固件代碼,以及編寫應用程序所需的API函數(shù)等。對于一般的應用,驅(qū)動程序可以直接使用,無需重編。在編程中主要用到以下7個API函數(shù):MPUSBGetDLL Version(),返回DLL的版本號;MPUSB-GetDeviceCount(),返回連接沒備的數(shù)目;MPUSBOpen(),返回指定pVID_PID和pEP的USB設備端點的句柄,返回的是一個端點句柄;MPUSBRead(),從IN端點讀取數(shù)據(jù)并填入緩沖區(qū);MPUSBWrite(),對一個OUT端點寫入數(shù)據(jù)并使用pData緩沖區(qū);MPUSBReadInt(),從Inter-rupt IN端點讀取數(shù)據(jù)并填人緩沖區(qū);MPUSBClose(),關閉一個端點的句柄。因為Microchip公司提供的MPUS-BAPI.DLL源程序是用Borland C編寫的,這一程序無法在VC環(huán)境下編譯,所以也不能產(chǎn)生隱式調(diào)用所需的.LIB文件,因此本設計在使用DLL時用的是顯式鏈接。


 

  PC機的軟件部分主要用于實現(xiàn)上位機同下位機之間的USB通信,光柵位移傳感器位移信號的細分和顯示等功能。實現(xiàn)這一功能的方法有很多種,比如采用簡單的VB、數(shù)據(jù)處理能力很強的Delphi,或國內(nèi)外廣泛采用的Borland C和VC等。為了下一步的軟件開發(fā)以及與廠家的其他軟件接口,本系統(tǒng)上位機的軟件部分采用VC++6.0來實現(xiàn)。圖3是PC機軟件部分的流程圖。

 3 結(jié) 語

  選擇何種芯片來設計嵌入式系統(tǒng),需要根據(jù)系統(tǒng)的需求、設計的難易程度和性價比等幾個方面來考慮。Micro-chip公司為PIC18F4550系列單片機提供通用的驅(qū)動程序、API函數(shù)、DEMO板和一系列范例程序等。其中,一些固件的端點與PC機通信的子程序可以直接調(diào)用,而不需要重寫,從而大大提高了開發(fā)效率,縮短了產(chǎn)品的研發(fā)周期,這勢必會導致該系列單片機會很快占據(jù)一部分USB接口市場。正是由于USB的諸多優(yōu)點和光柵位移傳感器有著很多其他位移傳感器無法比擬的優(yōu)點,因此,本設計的應用也將會越來越廣泛。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉