技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 帶全速USB接口的PICl8F4550應(yīng)用設(shè)計(jì)

帶全速USB接口的PICl8F4550應(yīng)用設(shè)計(jì)

時(shí)間:2008-05-12 16:37:00來源:zhangting

導(dǎo)語:?USB是一種快速的、雙向同步傳輸?shù)摹⒘畠r(jià)并可以進(jìn)行熱插拔的串行接口
引 言 隨著USB(Universal Scrial Bus)技術(shù)的發(fā)展,特別是高速(480 Mbps)USB2.0協(xié)議的出現(xiàn),幾乎所有的PC外設(shè)都可以移植到USB上,所以USB的PC外設(shè)的發(fā)展空間是巨大的,甚至在不久的將來,USB將完全取代異步串口和打印機(jī)并口,PC機(jī)廠商將不會(huì)再生產(chǎn)機(jī)箱上帶異步串口和打印機(jī)并口的PC機(jī)了,機(jī)箱上也不會(huì)再有那么多的連線了。 USB是一種快速的、雙向同步傳輸?shù)?、廉價(jià)并可以進(jìn)行熱插拔的串行接口。利用USB總線技術(shù),開發(fā)適用于科學(xué)研究和工業(yè)生產(chǎn)的各種儀器儀表設(shè)備,借以取代傳統(tǒng)計(jì)算機(jī)測控系統(tǒng)中采用串行RS232或并行接幾的儀器儀表設(shè)備,使計(jì)算機(jī)測控系統(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ì)簡單,調(diào)試方便,電磁兼容性好。然而,目前大部分具有USB功能的單片機(jī)都是專門針對個(gè)人計(jì)算機(jī)外圍設(shè)備或消費(fèi)市場的需要而設(shè)計(jì)的,忽略了嵌入式工程師的需要。Microchip公司新款PIC18F4550系列單片機(jī)的問世,為廣泛的嵌入式應(yīng)用增添了全速USB的優(yōu)勢,即使遇到惡劣的操作環(huán)境或在只能不定時(shí)地連接個(gè)人計(jì)算機(jī)的情況下,也能正常工作。 本文以光柵位移傳感器檢測系統(tǒng)的設(shè)計(jì)為背景,詳細(xì)介紹了帶全速USB接口的單片機(jī)PICl8F4550的應(yīng)用設(shè)計(jì)方法。 1 PICl8F4550介紹 PICl8F4550是Microchip公司最新生產(chǎn)的帶全速USB接口的8位高檔單片機(jī),芯片為40/44腳封裝。該單片機(jī)除了具有PIC單片機(jī)所特有的精簡指令集(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萬次,而數(shù)據(jù)保存期能超過40年。因而該芯片有很強(qiáng)的控制能力和靈活的工作方式。 新器件的全速USB 2.O接口具有1 KB雙重存取RAM,支持高達(dá)32個(gè)端點(diǎn)(雙向16對)和2種數(shù)據(jù)傳輸速率(即全速模式12 Mbps和低速模式1.5 Mbps),具有USB協(xié)議所規(guī)定的4種數(shù)據(jù)傳輸方式(控制傳輸方式、中斷傳輸方式、批量傳輸方式和實(shí)時(shí)傳輸方式)。該接口包括一個(gè)片上收發(fā)器和一個(gè)并行流端口,能把數(shù)據(jù)直接傳送到外部的設(shè)備,不僅減小了CPU的開銷,而且大大增強(qiáng)了系統(tǒng)的抗干擾能力和工作可靠性。 PICl8F4550的硬件資源菲常豐富,包含33個(gè)I/O,I/O端口為端口A、B、C、D、E;具有多個(gè)中斷源和1個(gè)中斷優(yōu)先級選擇,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ù)位及低電壓檢測電路等。 PIC18F4550單片機(jī)的一個(gè)關(guān)鍵特性在于它配備了32 KB自編程增強(qiáng)型閃存。使得設(shè)計(jì)人員可以通過USB端口對最終應(yīng)用進(jìn)行現(xiàn)場升級。結(jié)合新器件配備的一系列片上外設(shè)和納瓦技術(shù)(nanoWatt)的功耗管理功能,使其非常適用于多種嵌入式應(yīng)用,包括工業(yè)、醫(yī)療、汽車、電池供電和消費(fèi)類產(chǎn)品等。 2 PICl8F4550的設(shè)計(jì)應(yīng)用 2.1 光柵位移傳感器的基本工作原理、特點(diǎn) 光柵位移傳感器的基本工作原理是利用一對光柵,其中一塊是固定的.而男一塊是運(yùn)動(dòng)的。當(dāng)它們發(fā)生相對運(yùn)動(dòng)并有光通過兩者時(shí).能夠獲得相當(dāng)于干涉儀中得到的條紋信號,即所謂的“莫爾條紋信號”。對于一對計(jì)量光柵,彼此移動(dòng)一條刻槽(現(xiàn)代計(jì)量光柵常采用4~250 L/mm)就移動(dòng)一條莫爾條紋。條紋寬度不受波長影響。并且條紋較寬可進(jìn)行內(nèi)插.由于誤差平均效應(yīng),因而可以獲得很高的精度。與普通位移傳感器相比,它有以下幾個(gè)特點(diǎn): ①精度高。光柵位移傳感器在大量程測量長度或直線位移方面僅僅低于激光干涉?zhèn)鞲衅鳎辉趫A分度和角位移測量方面,光柵式傳感器屬于精度最高的。 ②大量程測量兼有高分辨率。感應(yīng)同步器和磁柵式傳感器也具有大量程測量的特點(diǎn),但分辨力和精度都不如光柵位移傳感器。 ③可動(dòng)態(tài)測量,易于實(shí)現(xiàn)測量及數(shù)據(jù)處理自動(dòng)化。 ④具有較強(qiáng)的抗干擾能力,對環(huán)境條件的要求不像激光干涉?zhèn)鞲衅髂敲磭?yán)格,但不如感應(yīng)同步器和磁柵式傳感器的適應(yīng)性強(qiáng)。油污和灰塵會(huì)影響它的可靠性,主要適合于在實(shí)驗(yàn)室和環(huán)境較好的車間使用。 2.2 PICl8F4550硬件設(shè)計(jì) PIC18F4550的USB接口硬件設(shè)計(jì)比較簡單,而單片機(jī)控制的外圍設(shè)備屬于一般單片機(jī)設(shè)計(jì),可以參照一般PIC單片機(jī)的設(shè)計(jì)方法。對于USB接口,Micrachip公司提供了一套開發(fā)套件(Demo板)幫助使用者開發(fā)自己的產(chǎn)品。它提供了應(yīng)用程序、驅(qū)動(dòng)程序和固件,幫助使用者熟悉USB的工作過程;同時(shí),可以直接利用開發(fā)套件來擴(kuò)展外圍設(shè)備。 圖l是一個(gè)光柵位移傳感器檢測系統(tǒng)硬件電路框圖,主要實(shí)現(xiàn)數(shù)據(jù)的采集、處理、傳輸和PWM脈沖的產(chǎn)生等。從光柵傳感器輸入的信號有5路:±sin,±cos以及零窗信號zero。經(jīng)差分放大電路合成,分3路進(jìn)入PIC單片機(jī)模擬量輸入口進(jìn)行A/D轉(zhuǎn)換;同時(shí),經(jīng)差分放大電路合成后的sin、cos信號經(jīng)過零比較器后轉(zhuǎn)換成數(shù)字脈沖信號,然后經(jīng)D觸發(fā)器和“與”門電路完成光柵位移的辨向。PIC單片機(jī)T0和T1口接收來自“與”門電路的數(shù)字脈沖,完成光柵位移的計(jì)數(shù)(計(jì)算光柵尺移動(dòng)的完整光柵數(shù));PIC單片機(jī)RCl口輸出4 MHz的PWM脈沖信號作為D觸發(fā)器的CP信號。計(jì)算機(jī)的USB接口兩根數(shù)據(jù)線分別接PICl8F4550的D+和D一口,用于完成計(jì)算機(jī)和單片機(jī)之間的數(shù)據(jù)通信。計(jì)算機(jī)的USB電源一方面為PIC微處理器提供能源,另一方面通過電源模塊轉(zhuǎn)換成±12V電源,為運(yùn)放電路提供正負(fù)電源。 [align=center] 圖1 光柵位移傳感器檢測系統(tǒng)硬件電路框圖[/align] 2.3 單片機(jī)軟件部分設(shè)計(jì) 單片機(jī)的軟件部分主要完成光姍位移傳感器的數(shù)據(jù)采集、A/D轉(zhuǎn)換、計(jì)算光柵位移傳感器的正向、反向莫爾條紋的個(gè)數(shù)、為數(shù)字電路提供CP脈沖以及完成USB的通信等工作。圖2是單片機(jī)軟件部分的流程圖。 [align=center] 圖2 單片機(jī)軟件部分流程[/align] 2.4 PICl8F4550的固件設(shè)計(jì) 微芯公司提供了一系列的USB寄存器,使用這些寄存器可以完成USB通信。大多數(shù)的USB通信都是通過中斷來完成的,在USB中斷服務(wù)程序內(nèi),要實(shí)現(xiàn)輸入/輸出接口,允許大多數(shù)的USB程序在后臺(tái)完成。從應(yīng)用的觀點(diǎn)來看,枚舉過程和數(shù)據(jù)通信的發(fā)生好像沒有聯(lián)系。 對于單片機(jī)控制程序,目前沒有任何廠商提供自動(dòng)生成固件(firmware)的工具,因此所有程序都要由自己手工編制。由于USB協(xié)議的復(fù)雜性,并且考慮到廣大客戶的需求,因此,Mictochip公司在推出PIC18F4550系列芯片時(shí),提供了面向不同客戶群的DEMO程序,這就大大減輕了系統(tǒng)開發(fā)人員的負(fù)擔(dān),同時(shí)縮短了開發(fā)周期。本系統(tǒng)的設(shè)計(jì)就是在Microehip公司提供的DEMO程序的基礎(chǔ)上,進(jìn)行必要的修改來完成的。本設(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)對描述符的枚舉以及休眠、復(fù)位功能,主要包括USBCheckStdRequest(void)、USBStdGetDscHandler(void)和USBStdFeatureReqHandler(void)等5個(gè)子程序。 ③usbctrltrf.c:主要實(shí)現(xiàn)USB控制傳輸所需的各種功能,主要由USBCtrlTrfSetupHandler(void)、USBCtr—IEPServieeCompiete(void)和USBPrepareForNextSetupTrf(void)等8個(gè)子程序組成。 ④usbdrv.e:主要實(shí)現(xiàn)與USB驅(qū)動(dòng)相關(guān)的功能,包括檢查總線狀態(tài)、USB模塊使能、USB模塊掛起、遠(yuǎn)程喚醒等功能;主要由USBSuspend(void)、USBModuleEnable(void)、USBSoftDetach(void)和USBDriverService(void)等12個(gè)子程序組成。 ⑤usbdsc.c:主要是對該系統(tǒng)的描述,包括廠商、產(chǎn)品號等的描述。 ⑥usbgen.c:對USB設(shè)備類的配置(在這里把它配置為通用USB類),主要包括USB通用類的初始化端點(diǎn)和讀寫,由USBGenlnitEP(void)、USBGenRead(byte*buffer,byte len)和USBGenWrite(byte*buffer,bytelen)三個(gè)子程序組成。 ⑦usbmmap.c:主要用于檢查USB在通信過程中,端點(diǎn)號與BDT(緩沖器描述符表)之間的匹配。 ⑧user.c:直接面向用戶的應(yīng)用程序,可以幫助用戶完成自己的初始化配置、處理數(shù)據(jù)的讀/寫、I/O口的處理,設(shè)備的請求等。本設(shè)計(jì)中下位機(jī)的大部分功能都是由這個(gè)程序來實(shí)現(xiàn)的,比如A/D轉(zhuǎn)換及其數(shù)據(jù)的讀取、1MHz的PWM波形產(chǎn)生等。它主要包括UserInit(void)、BlinkUSBStatus(void)、ServiceRequests(void)、ProcessI()(void)、ResetTempLog(void)和ReadPOT(void)六個(gè)子程序。 2.5 PC機(jī)軟件編程 要編寫PC機(jī)上的軟件,可以利用Microchip公司提供的開發(fā)工具包。該工具包是一個(gè)安裝程序,安裝后可以在安裝日錄下找到USB通用的驅(qū)動(dòng)程序、用Borland C編寫的應(yīng)用程序、一些固件代碼,以及編寫應(yīng)用程序所需的API函數(shù)等。對于一般的應(yīng)用,驅(qū)動(dòng)程序可以直接使用,無需重編。在編程中主要用到以下7個(gè)API函數(shù):MPUSBGetDLL Version(),返回DLL的版本號;MPUSB—GetDeviceCount(),返回連接設(shè)備的數(shù)目;MPUSBOpen(),返回指定pVID_PID和pEP的USB設(shè)備端點(diǎn)的句柄,返回的是一個(gè)端點(diǎn)句柄;MPUSBRead(),從IN端點(diǎn)讀取數(shù)據(jù)并填入緩沖區(qū);MPUSBWrite(),對一個(gè)OUT端點(diǎn)寫入數(shù)據(jù)并使用pData緩沖區(qū);MPusBReadInt(),從Interrupt IN端點(diǎn)讀取數(shù)據(jù)并填入緩沖區(qū);MPUSBClose(),關(guān)閉一個(gè)端點(diǎn)的句柄。因?yàn)镸ierochip公司提供的MPUSBAPLDLL源程序是用Borland C編寫的,這一程序無法在VC環(huán)境下編譯,所以也不能產(chǎn)生隱式調(diào)用所需的.LIB文件,因此本設(shè)計(jì)在使用DLL時(shí)用的是顯式鏈接。 PC機(jī)的軟件部分主要用于實(shí)現(xiàn)上位機(jī)同下位機(jī)之間的USB通信,光柵位移傳感器位移信號的細(xì)分和顯示等功能。實(shí)現(xiàn)這一功能的方法有很多種,比如采用簡單的VB、數(shù)據(jù)處理能力很強(qiáng)的Delphi,或國內(nèi)外廣泛采用的Borland C和VC等。為了下一步的軟件開發(fā)以及與廠家的其他軟件接口,本系統(tǒng)上位機(jī)的軟件部分采用VC++6.0來實(shí)現(xiàn)。圖3是PC機(jī)軟件部分的流程圖。 [align=center] 圖3 PC機(jī)軟件部分流程[/align] 結(jié) 語 選擇何種芯片來設(shè)計(jì)嵌入式系統(tǒng),需要根據(jù)系統(tǒng)的需求、設(shè)計(jì)的難易程度和性價(jià)比等幾個(gè)方面來考慮。Micro-chip公司為PICl8F4550系列單片機(jī)提供通用的驅(qū)動(dòng)程序、API函數(shù)、DEMO板和一系列范例程序等。其中,一些固件的端點(diǎn)與PC機(jī)通信的子程序可以直接調(diào)用,而不需要重寫,從而大大提高了開發(fā)效率,縮短了產(chǎn)品的研發(fā)周期,這勢必會(huì)導(dǎo)致該系列單片機(jī)會(huì)很快占據(jù)一部分USB接口市場。正是由于USB的諸多優(yōu)點(diǎn)和光柵位移傳感器有著很多其他位移傳感器無法比擬的優(yōu)點(diǎn),因此,本設(shè)計(jì)的應(yīng)用也將會(huì)越來越廣泛。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:節(jié)能減排先進(jìn)技術(shù):印染廢水...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號