《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)PIC18F4550的USB接口設(shè)計(jì)
基于單片機(jī)PIC18F4550的USB接口設(shè)計(jì)
摘要: 引言USB是一種快速的,、雙向同步傳輸?shù)摹⒘畠r(jià)并可以進(jìn)行熱插拔的串行接口,。利用USB總線技術(shù),,開發(fā)適用于科學(xué)研究和工業(yè)牛產(chǎn)的各種儀器儀表設(shè)備,,借以取代傳統(tǒng)計(jì)算機(jī)測(cè)控系統(tǒng)中采用串行RS232或并行接口的儀器儀表
Abstract:
Key words :

 引言

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

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

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

  1 PIC18F4550介紹

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

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

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

  2 PIC18F4550的設(shè)計(jì)應(yīng)用

  2.1 光柵位移傳感器的基本工作原理,、特點(diǎn)

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

 ?、?大量程測(cè)量兼有高分辨率,。感應(yīng)同步器和磁柵式傳感器也具有大量程測(cè)量的特點(diǎn),但分辨力和精度都不如光柵位移傳感器,。

 ?、?可動(dòng)態(tài)測(cè)量,易于實(shí)現(xiàn)測(cè)量及數(shù)據(jù)處理自動(dòng)化,。

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

  2.2 PIC18F4550硬件設(shè)計(jì)

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

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

  2.3 單片機(jī)軟件部分設(shè)計(jì)

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

  

2.4 PIC18F4550的固件設(shè)計(jì)

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

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

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

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。