pic單片機(jī)范文

時(shí)間:2023-03-16 20:16:32

導(dǎo)語:如何才能寫好一篇pic單片機(jī),這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

篇1

關(guān)鍵詞:pic;USB;單片機(jī);應(yīng)用

中圖分類號(hào):TP368.12 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-7712 (2012) 16-0049-01

肺功能測(cè)定是臨床較為常見的一種檢查,對(duì)于患者肺及氣道早期檢查具有積極作用,同時(shí)可以對(duì)患者病情嚴(yán)重程度給予評(píng)估。能夠通過檢測(cè)呼氣流速實(shí)現(xiàn)多項(xiàng)生理參數(shù)評(píng)估的醫(yī)學(xué)儀器,由于一些早期肺功能測(cè)定儀不支持USB通信,在數(shù)據(jù)導(dǎo)入導(dǎo)出中不夠方便,本研究通過帶有USB模塊的單片機(jī)改造,實(shí)現(xiàn)了USB通信功能。

一、PIC單片機(jī)USB模塊

帶改造肺功能測(cè)試儀采用的單片機(jī)為PIC18F6720型,為確保兼容性,加快改進(jìn)速度,本次選用的單片機(jī)為PIC18F67J50系列單片機(jī)。

(一)USB外設(shè)

PIC18F67J50系列單片機(jī)的USB模塊能夠?qū)崿F(xiàn)USB2.0串口兼容,同時(shí)可支持全速接口(12Mb/s)和低速接口(1.5Mb/s),可以全面支持中斷、控制及批量傳輸,能夠支持雙向16對(duì)端點(diǎn),最多32個(gè)端點(diǎn)(雙向16對(duì)),RAM具有CPU和USB模塊雙重存取特性。

(二)USB電源模式

在USB電源配置方面,有著不同的要求和配置,比較常見模式為的電源模式包括Self-Power Only(僅自供電)、Dual Powe(雙電源)、Bus Power Only(僅總線供電)等三種供電模式。其中僅總線供電模式下是最簡單和是最常用的一種供電方式,這種方式電源自USB接口,在供電方式上非常簡單。為符合USB2.0對(duì)于浪涌電流的規(guī)范化要求,Vbus同接地端間等效電容應(yīng)在l0uF以下。按照USB2.0的規(guī)范,USB還應(yīng)可以支持低功耗掛起模式。在USB提供V的Vbus線供電過程中,其實(shí)際電流消耗應(yīng)在500uA以內(nèi),通信停止至少3ms來實(shí)現(xiàn)主機(jī)和外設(shè)之間的掛起模式通信。在elf-Power Only(僅自供電)模式中,USB采取自身提供電源的方式,僅有很小電源來自USB,并通常都需要增加相應(yīng)的連接指示器,來顯示USB和主機(jī)連接及Vbus供電情況。

(三)振蕩器

USB模塊具有相應(yīng)的時(shí)鐘要求。在低速運(yùn)行狀態(tài)下,需要給予USB模塊6MHz的時(shí)鐘脈沖頻率,在全速運(yùn)行狀態(tài)下,需要USB模塊48MHz的時(shí)鐘脈沖頻率為48MHz。然而,無論USB模塊的時(shí)鐘脈沖頻率如何,單片機(jī)CPU等外設(shè)振蕩器均需要在一定的時(shí)鐘速度運(yùn)行。

二、PIC單片機(jī)固件開發(fā)

本研究選擇的PIC單片機(jī)程序環(huán)境為MPLAB IDE,改集成開發(fā)環(huán)境平臺(tái)中,可全面支持機(jī)器碼編譯連接、源程序編寫、開發(fā)調(diào)試工具等功能。軟件可免費(fèi)通過微芯公司官方網(wǎng)站進(jìn)行下載,此外,在開發(fā)語言上也完全支持C語言以及第三方語言工具,主要包括:Byte Craft、CCS、B Knudsen Data、HI-TECH等。本研究中原有肺功能檢測(cè)儀的采取的程序編譯器為第三方提供的HI-TECH,有因此支持nc器件較少,開發(fā)成本較高,在綜合考慮成本因素和實(shí)用因素的基礎(chǔ)上,本研究最終采用的編譯器為微芯公司的MPLAB C18。

而采取微芯公司的MPLAB C18需要對(duì)而這需要對(duì)肺功能檢測(cè)儀原程序的變量定義實(shí)施修改,所以必須首先對(duì)MPLAB C18的變量的存儲(chǔ)區(qū)進(jìn)行定義。默認(rèn)狀態(tài)下,編譯器會(huì)假定無跨越存儲(chǔ)區(qū)邊界問題。因此在創(chuàng)建超過256字節(jié)的變量中可對(duì)鏈接描述文件進(jìn)行相應(yīng)修改。

三、固件編程

肺功能檢測(cè)儀固件改進(jìn)的目的重要在于通過USB接口實(shí)現(xiàn)計(jì)算機(jī)數(shù)據(jù)處理和本機(jī)數(shù)據(jù)提取功能。因此,在主要改進(jìn)容物就集中在保持原有操作代碼基礎(chǔ)上的USB的HID類通信上,實(shí)現(xiàn)USB總線的通信命令傳送和數(shù)據(jù)采集并及時(shí)返回。

(一)USB狀態(tài)和控制

在編寫USB模塊固件程序時(shí)會(huì)用到USB傳輸狀態(tài)寄存器(USTAT)、USB配置寄存器(UCFG)、USB控制寄存器(UCON) 3個(gè)寄存器進(jìn)行當(dāng)前工作狀態(tài)的設(shè)置和查詢,并進(jìn)入到相應(yīng)的控制流程當(dāng)中。

控制寄存器主要包括零電平復(fù)位、USB模塊等狀態(tài)配置管理;配置寄存器主要包括片上上拉電阻、總線速度、片上收發(fā)器與USB模塊硬件相關(guān)的配置;狀態(tài)寄存器則主要負(fù)責(zé)提供串行接口引擎(SIE)中的狀態(tài)報(bào)告,一旦發(fā)現(xiàn)中斷信號(hào),應(yīng)首先進(jìn)行該寄存器的讀取工作,并以此完成傳輸?shù)臓顟B(tài)的確認(rèn)。

(二)USB中斷

USB模塊的絕大部分活動(dòng)均有中斷進(jìn)行觸發(fā),和其他單片機(jī)中斷源一樣,該模塊也有著自身的特定中斷邏輯結(jié)構(gòu)。能夠通過一組寄存器允許USB中斷,同時(shí)可以用一組單獨(dú)的標(biāo)志寄存器來實(shí)現(xiàn)中斷事件捕獲。在本研究中的單片機(jī)中斷邏輯中,USB中斷源均通過頂層的USB中斷請(qǐng)求來反應(yīng)和標(biāo)志位USBIF,在通過中斷第二層寄存器來進(jìn)行確認(rèn)。

四、系統(tǒng)流程與釆集

當(dāng)肺功能測(cè)試儀開啟后,應(yīng)首先對(duì)單片機(jī)以及液晶屏等進(jìn)行初始化處理。再通過USB檢測(cè)引腳來對(duì)高電平情況進(jìn)行判斷,如果出現(xiàn)高電平則可以說明已連接上了USB線,可以對(duì)PIC單片機(jī)的USB模塊進(jìn)行初始化配置工作,在肺功能測(cè)試儀液晶屏上出現(xiàn)“連接USB線”提示,在這一期間應(yīng)禁止鍵盤中斷使能,也就是不允許實(shí)施本機(jī)操作。隨后實(shí)施USB枚舉過程,進(jìn)行接口和端點(diǎn)配置。在完成配置工作后,即可以實(shí)施相應(yīng)的計(jì)算機(jī)操作工作。通過控制輸出端點(diǎn)0上位機(jī)將命令向下位機(jī)進(jìn)行發(fā)送。設(shè)備完成對(duì)命令的響應(yīng)工作,開始進(jìn)行數(shù)據(jù)采集工作,通過中斷輸入端點(diǎn)1可實(shí)現(xiàn)返回?cái)?shù)據(jù)。

參考文獻(xiàn):

[1]張巍,鄭建彬.基于VC++實(shí)現(xiàn)在線簽名認(rèn)證系統(tǒng)與USB的通信[J].計(jì)算機(jī)與數(shù)字工程,2007,10.

[2]扶文樹,何軍,陸信如.USB HID數(shù)據(jù)通信接口的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2009,22(2).

[3]葉君耀,劉克寧.加密存儲(chǔ)設(shè)備驅(qū)動(dòng)程序的優(yōu)化設(shè)計(jì)[J].軟件導(dǎo)刊,2010,2.

篇2

關(guān)鍵詞 Microchip 單片機(jī) 功耗 編程

由美國Microchip公司生產(chǎn)的PIC系列單片機(jī),由于其超小型、低功耗、低成本、多品種等特點(diǎn),已廣泛應(yīng)用于工業(yè)控制、儀器、儀表、通信、家電、玩具等領(lǐng)域,本文總結(jié)了作者在PIC單片機(jī)開發(fā)過程中的一些經(jīng)驗(yàn)、技巧,供同行參考。

1 怎樣進(jìn)一步降低功耗

功耗,在電池供電的儀器儀表中是一個(gè)重要的考慮因素。PIC16C××系列單片機(jī)本身的功耗較低(在5V,4MHz振蕩頻率時(shí)工作電流小于2mA)。為進(jìn)一步降低功耗,在保證滿足工作要求的前提下,可采用降低工作頻率的方法,工作頻率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其電流可減小到15μA),但較低的工作頻率可能導(dǎo)致部分子程序(如數(shù)學(xué)計(jì)算)需占用較多的時(shí)間。在這種情況下,當(dāng)單片機(jī)的振蕩方式采用RC電路形式時(shí),可以采用中途提高工作頻率的辦法來解決。 具體做法是在閑置的一個(gè)I/O腳(如RB1)和OSC1管腳之間跨接一電阻(R1),如圖1所示。低速狀態(tài)置RB1=0。需進(jìn)行快速運(yùn)算時(shí)先置RB1=1,由于充電時(shí),電容電壓上升得快,工作頻率增高,運(yùn)算時(shí)間減少,運(yùn)算結(jié)束又置RB1=0,進(jìn)入低速、低功耗狀態(tài)。工作頻率的變化量依R1的阻值而定(注意R1不能選得太小,以防振蕩電路不起振,一般選取大于5kΩ)。

另外,進(jìn)一步降低功耗可充分利用“sleep”指令。執(zhí)行“sleep”指令,機(jī)器處于睡眠狀態(tài),功耗為幾個(gè)微安。程序不僅可在待命狀態(tài)使用“sleep”指令來等待事件,也可在延時(shí)程序里使用(見例1、例2)。在延時(shí)程序中使用“sleep”指令降低功耗是一個(gè)方面,同時(shí),即使是關(guān)中斷狀態(tài),Port B端口電平的變化可喚醒“sleep”,提前結(jié)束延時(shí)程序。這一點(diǎn)在一些應(yīng)用場合特別有用。同時(shí)注意在使用“sleep”時(shí)要處理好與WDT、中斷的關(guān)系。

圖1 提高工作頻率的方法

例1(用Mplab-C編寫) 例2(用Masm編寫) Delay() Delay { ;此行可加開關(guān)中斷指令 /*此行可加開關(guān)中斷指令*/ movlw.10 for (i=0; i

INTCON中的各中斷允許位對(duì)中斷狀態(tài)位并無影響。當(dāng)PORT B配置成輸入方式時(shí),RB引腳輸入在每個(gè)讀操作周期被抽樣并與舊的鎖存值比較,一旦不同就產(chǎn)生一個(gè)高電平,置RBIF=1。在開RB中斷前,也許RBIF已置“1”,所以在開RB中斷時(shí)應(yīng)先清RBIF位,以免受RBIF原值的影響,同時(shí)在中斷處理完成后最好是清RBIF位。

3 用Mplab-C高級(jí)語言寫PIC單片機(jī)程序時(shí)要注意的問題

3.1 程序中嵌入?yún)R編指令時(shí)注意書寫格式 見例3。

例3

…… …… while(1) {#asm while(1) { …… #asm /*應(yīng)另起一行*/ #endasm …… }/*不能正確編譯*/ #endasm …… }/*編譯通過*/ …… 當(dāng)內(nèi)嵌匯編指令時(shí),從“#asm”到“endasm”每條指令都必須各占一行,否則編譯時(shí)會(huì)出錯(cuò)。

3.2 加法、乘法的最安全的表示方法 見例4。

例4

#include #include unsigned int a, b; unsigned long c; void main() { a=200; b=2; c=a*b; } /*得不到正確的結(jié)果c=400*/ 原因是Mplab-C以8×8乘法方式來編譯c=a*b,返回單字節(jié)結(jié)果給c,結(jié)果的溢出被忽略。改上例中的“c=a*b;”表達(dá)式為“c=a;c=c*b;”,最為安全(對(duì)加法的處理同上)。

3.3 了解乘除法函數(shù)對(duì)寄存器的占用

由于PIC片內(nèi)RAM僅幾十個(gè)字節(jié),空間特別寶貴,而Mplab-C編譯器對(duì)RAM地址具有不釋放性,即一個(gè)變量使用的地址不能再分配給其它變量。如RAM空間不能滿足太多變量的要求,一些變量只能由用戶強(qiáng)制分配相同的RAM空間交替使用。而Mplab-C中的乘除法函數(shù)需借用RAM空間來存放中間結(jié)果,所以如果乘除法函數(shù)占用的RAM與用戶變量的地址重疊時(shí),就會(huì)導(dǎo)致出現(xiàn)不可預(yù)測(cè)的結(jié)果。如果C程序中用到乘除法運(yùn)算,最好先通過程序機(jī)器碼的反匯編代碼(包含在生成的LST文件中)查看乘除法占用地址是否與其它變量地址有沖突,以免程序跑飛。Mplab-C手冊(cè)并沒有給出其乘除法函數(shù)對(duì)具體RAM地址的占用情況。例5是乘法函數(shù)對(duì)0×13、0×14、0×19、0×1A地址占用情況。

例5

部分反匯編代碼 #include 01A7 081F MOVF 1F,W #include 01A8 0093 MOVWF 13 ;借用 unsigned long Value @0x1 01A9 0820 MOVF 20,W char Xm @0x2d; 01AA 0094 MOVWF 14 ;借用 void main() 01AB 082D MOVF 2D,W {Value=20; 01AC 0099 MOVWF 19 ;借用 Xm=40; 01AD 019A CLRF1A ;借用 Value=Value*Xm 01AE 235F CALL 035Fh ;調(diào)用乘法函數(shù) …… 01AF 1283 BCF 03,5 } 01B0 009F MOVWF 1F ;返回結(jié)果低字節(jié) 01B1 0804 MOVF 04,W 01B2 00A0 MOVWF 20 ;返回結(jié)果高字節(jié) 4 對(duì)芯片重復(fù)編程

對(duì)無硬件仿真器的用戶,總是選用帶EPROM的芯片來調(diào)試程序。每更改一次程序,都是將原來的內(nèi)容先擦除,再編程,其過程浪費(fèi)了相當(dāng)多的時(shí)間,又縮短了芯片的使用壽命。如果后一次編程的結(jié)果較前一次,僅是對(duì)應(yīng)的機(jī)器碼字節(jié)的相同位由“1”變成“0”,就可在前一次編程芯片上再次寫入數(shù)據(jù),而不必擦除原片內(nèi)容。

在程序的調(diào)試過程中,經(jīng)常遇到常數(shù)的調(diào)整,如常數(shù)的改變能保證對(duì)應(yīng)位由“1”變“0”,都可在原片內(nèi)容的基礎(chǔ)繼續(xù)編程。另外,由于指令“NOP”對(duì)應(yīng)的機(jī)器碼為“00”,調(diào)試過程中指令的刪除,先用“NOP”指令替代,編譯后也可在原片內(nèi)容上繼續(xù)編程。

另外,在對(duì)帶EPROM的芯片編程時(shí),特別注意程序保密狀態(tài)位。廠家對(duì)新一代帶EPROM芯片的保密狀態(tài)位已由原來的EPROM可擦型改為了熔絲型,一旦程序代碼保密熔絲編程為“0”,可重復(fù)編程的 EPROM 芯片就無法再次編程了。使用時(shí)應(yīng)注意這點(diǎn),以免造成不必要的浪費(fèi)(Microchip 資料并未對(duì)此做出說明)。

參考文獻(xiàn)

篇3

【關(guān)鍵詞】溫度測(cè)量;PIC16F877;DS18B20;仿真測(cè)試

在日常生活經(jīng)常要用到溫度的檢測(cè)及控制,傳統(tǒng)的測(cè)溫元件有熱電偶和熱電阻,而熱電偶和熱電阻測(cè)出的一般是電壓,在轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的硬件支持,硬件電路很復(fù)雜,軟件調(diào)試也復(fù)雜,制作成本高。而且測(cè)出來的溫度精度也沒有技術(shù)成熟的溫度傳感器高。

本文基于PIC單片機(jī)來設(shè)計(jì)數(shù)字式測(cè)溫計(jì),直接采用數(shù)字式溫度傳感器DS18B20,用單片機(jī)對(duì)18B20進(jìn)行控制,來進(jìn)行測(cè)溫[1]。顯示部分可用lcd1602,單片機(jī)可直接驅(qū)動(dòng)lcd1602顯示溫度,硬件較簡單,穩(wěn)定。DS18B20采用單總線技術(shù),容易擴(kuò)展,并且具有轉(zhuǎn)換速度快,轉(zhuǎn)換精度高,可由片機(jī)直接讀出溫度并顯示出來等優(yōu)點(diǎn)。

一、設(shè)計(jì)目標(biāo)和思路

本文采用PIC16F877的USART異步通信模式,可廣泛應(yīng)用于單片機(jī)與PC機(jī),以及單片機(jī)與單片機(jī)之間的通信。USART接口由RC6、RC7這兩只引腳構(gòu)成。RC6用于數(shù)據(jù)的發(fā)送,RC7用于接收數(shù)據(jù)[2]。

當(dāng)單片機(jī)需要通過USART發(fā)送數(shù)據(jù)時(shí),只需將所發(fā)送數(shù)據(jù)送入數(shù)據(jù)緩沖寄存器TXERG,然后系統(tǒng)會(huì)自動(dòng)將TXREG寄存器內(nèi)容送入發(fā)送移位寄存器TSR,接著系統(tǒng)會(huì)根據(jù)所設(shè)置的波特率脈沖信號(hào),通過RC6引腳從高位到低位依次發(fā)送出去。當(dāng)系統(tǒng)將TXERG寄存器內(nèi)容加載到TSR中時(shí),會(huì)自動(dòng)將中斷發(fā)送標(biāo)志位TXIF置位,根據(jù)程序決定是否進(jìn)入中斷。而當(dāng)單片機(jī)需要通過USART接受數(shù)據(jù)時(shí),通過RC7引腳將數(shù)據(jù)依次送入接收移位寄存器RSR中,當(dāng)收到一個(gè)停止位時(shí),移位寄存器RSR就把收到的8位數(shù)據(jù)自動(dòng)送入接收數(shù)據(jù)緩沖器RCREG中。在接收數(shù)據(jù)緩沖器RCREG收到一個(gè)穩(wěn)定的數(shù)據(jù)后,接收中斷標(biāo)志位RCIF將自動(dòng)置位,根據(jù)程序決定是否進(jìn)入中斷。

二、原理結(jié)構(gòu)圖

本文利用PIC16F877和DS18B20傳感器設(shè)計(jì)了測(cè)溫計(jì),其包含主控器部分、溫度顯示部分、傳感測(cè)試部分和按鍵設(shè)計(jì)部分[3]。

基于PIC16F877的測(cè)溫計(jì)原理電路圖結(jié)構(gòu)如圖1所示。

其中,電源部分的S1為復(fù)位按鈕它在被按得時(shí)候斷開放開后自動(dòng)閉合,在其斷開又閉合的瞬間使整套電路中各芯片的供電電壓實(shí)現(xiàn)從5V降到0V再升到5V的過程,從而達(dá)到復(fù)位的目的。輸入電容C2一般情況不接,但當(dāng)集成穩(wěn)壓器遠(yuǎn)離整流、濾波電路時(shí)應(yīng)接入一個(gè)0.33μf的電容器,它的作用是改善紋波和抑制輸入的瞬時(shí)過電壓,保證78L05的輸入與輸出間的電壓差不會(huì)超過允許值。輸出電容C3一般不采用大容量的電解電容器,只要接入0.1μf的電容器便可以改善負(fù)載的瞬態(tài)響應(yīng)。但是,為了減小輸出的紋波電壓,在輸出端并聯(lián)一只大容量的電解電容C4,會(huì)取得更好的效果。然而,這樣將隨之產(chǎn)生一種弊端:一旦78L05的輸入端出現(xiàn)短路時(shí),輸出端上的大電容器上儲(chǔ)存的電荷將通過集成穩(wěn)壓器內(nèi)部電路調(diào)整管的發(fā)射極與基極泄放,因大容量電容器釋放能量較大,會(huì)造成集成穩(wěn)壓器內(nèi)部調(diào)整管的損壞,導(dǎo)致電路無法工作。為了防止這一點(diǎn),在78L05的輸入端與輸出端之間跨接一個(gè)二極管,它為C4上電荷的泄放提供了一個(gè)分流通路,對(duì)集成穩(wěn)壓器起保護(hù)作用。

串口接收溫度函數(shù)流程圖如圖2所示。

三、Protues仿真調(diào)試

為調(diào)試和檢驗(yàn)上述的電路原理圖的正確性和合理性,本文通過Protues軟件仿真來進(jìn)行波形調(diào)試。

在仿真調(diào)試的過程中,先后對(duì)DS18B20測(cè)溫模塊、lcd1602顯示模塊、PIC單片機(jī)的USART模塊通信等,分別進(jìn)行了仿真測(cè)試。待各部分均測(cè)試正確無誤后,方才對(duì)整體電路進(jìn)行測(cè)試。圖3所示即為本文對(duì)溫度測(cè)量部分進(jìn)行仿真調(diào)試和測(cè)試。

從Protues的仿真結(jié)果來看,本文設(shè)計(jì)的數(shù)字溫度測(cè)量電路,以PIC16F877單片機(jī)為工作處理器的核心,外接DS18B20和LCD1602,用單片機(jī)處理數(shù)字信號(hào),再把其送入顯示器顯示。在經(jīng)過反復(fù)的仿真調(diào)試和測(cè)試后,驗(yàn)證其使用起來比較方便且結(jié)果簡單易讀。與此同時(shí),如果在本文涉及的基礎(chǔ)上在擴(kuò)展其功能,如多點(diǎn)測(cè)溫、溫度報(bào)警等,則只需調(diào)整PIC單片機(jī)程序即可。這樣的話,本文設(shè)計(jì)的測(cè)溫系統(tǒng),在具有電路簡單、維護(hù)方便等優(yōu)點(diǎn)的同時(shí),還具有擴(kuò)展兼容性好、讀數(shù)準(zhǔn)確易懂等特點(diǎn),能夠滿足日常生活對(duì)測(cè)溫計(jì)的一般基本要求。

參考文獻(xiàn)

[1]劉君華.傳感器技術(shù)及應(yīng)用實(shí)例[M].電子工業(yè)出版社, 2008.

[2]彭樹生,莊志洪,趙惠昌.《PIC單片機(jī)原理及應(yīng)用》P224-226[M].機(jī)械出版社,2001,1.

[3]李榮正.PIC單片機(jī)原理及應(yīng)用[M].北京航空航天大學(xué)出版社,2005.

作者簡介:

篇4

實(shí)驗(yàn)操作是理論聯(lián)系實(shí)際的重要環(huán)節(jié),實(shí)驗(yàn)報(bào)告必須在科學(xué)實(shí)驗(yàn)的基礎(chǔ)上進(jìn)行,實(shí)驗(yàn)報(bào)告的撰寫是知識(shí)系統(tǒng)化的吸收和升華的過程,實(shí)驗(yàn)報(bào)告應(yīng)該體現(xiàn)完整性、規(guī)范性、正確性、有效性?,F(xiàn)將撰寫實(shí)驗(yàn)報(bào)告的有關(guān)內(nèi)容說明如下:

1.實(shí)驗(yàn)名稱

2.實(shí)驗(yàn)?zāi)康?/p>

本次實(shí)驗(yàn)所涉及并要求掌握的知識(shí)點(diǎn)。

3.實(shí)驗(yàn)內(nèi)容與實(shí)驗(yàn)步驟

實(shí)驗(yàn)內(nèi)容、原理、原理圖分析及具體實(shí)驗(yàn)步驟。

4.實(shí)驗(yàn)環(huán)境

實(shí)驗(yàn)所使用的器件、儀器設(shè)備名稱及規(guī)格。

5.設(shè)計(jì)實(shí)驗(yàn)數(shù)據(jù)表格

6.實(shí)驗(yàn)過程與分析

詳細(xì)記錄在實(shí)驗(yàn)過程中發(fā)生的故障和問題,并進(jìn)行故障分析,說明故障排除的過程及方法。

根據(jù)具體實(shí)驗(yàn),記錄、整理相應(yīng)數(shù)據(jù)表格、繪制曲線、波形圖等,并進(jìn)行誤差分析。

7.實(shí)驗(yàn)結(jié)果總結(jié)

對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,完成思考題目,總結(jié)實(shí)驗(yàn)的心得體會(huì),并提出實(shí)驗(yàn)的改進(jìn)意見。

注:1.前5項(xiàng)必須在做實(shí)驗(yàn)之前完成,并由指導(dǎo)教師簽字后才能做實(shí)驗(yàn)。

2.對(duì)于學(xué)生自擬實(shí)驗(yàn)題目、參與科研、創(chuàng)新實(shí)驗(yàn)等形式實(shí)驗(yàn)項(xiàng)目的實(shí)驗(yàn)報(bào)告可采用論文、實(shí)驗(yàn)總結(jié)報(bào)告等形式完成。

3.此封皮標(biāo)準(zhǔn)頁面為16K,實(shí)驗(yàn)報(bào)告:實(shí)驗(yàn)名稱:

熟悉PIC系列單片機(jī)的開發(fā)環(huán)境及簡單編程

實(shí)驗(yàn)?zāi)康模?/p>

1. 通過順序結(jié)構(gòu)的簡單程序設(shè)計(jì),熟悉PIC系列單片機(jī)的開發(fā)環(huán)境,掌握基本應(yīng)用步驟和命令;

2. 熟悉匯編語言指令,掌握基本的程序設(shè)計(jì)方法。

實(shí)驗(yàn)環(huán)境:

PC計(jì)算機(jī) MAPLAB編譯環(huán)境

實(shí)驗(yàn)原理 :

實(shí)驗(yàn)一:交換兩個(gè)寄存器內(nèi)容(例如交換f10H和f11H的內(nèi)容) 實(shí)驗(yàn)過程比較簡單,無分支程序,而且思路十分清晰,難度不大。

實(shí)驗(yàn)二:(選作)將某一寄存器內(nèi)容中的奇偶位數(shù)據(jù)交換。

本實(shí)驗(yàn)的思想是:將寄存器中數(shù)據(jù)同10101010二進(jìn)制數(shù)相與,得到原數(shù)據(jù)的奇數(shù)位,并向右移一位后存至一個(gè)寄存器,作為結(jié)果數(shù)據(jù)的偶位數(shù);再將寄存器中數(shù)據(jù)同01010101二進(jìn)制數(shù)相與,得到原數(shù)據(jù)的偶數(shù)位,并向左移一位后存至另外一個(gè)寄存器,作為結(jié)果數(shù)據(jù)的奇位數(shù)。最后,將這兩個(gè)寄存器中的數(shù)字進(jìn)行或運(yùn)算,得到結(jié)果。

實(shí)驗(yàn)中,使用了RO作為記錄原數(shù)奇位數(shù)的寄存器,RE作為記錄原數(shù)偶位數(shù)的寄存器,RN作為記錄員數(shù)據(jù)的寄存器,RR作為記錄結(jié)果的寄存器。

實(shí)驗(yàn)程序:

實(shí)驗(yàn)一:

LIST P=16C54

RA EQU 10

RB EQU 11

RT EQU 12

ORG 1FFH

GOTO MAIN

ORG 0

MAIN NOP

MOVLW 0

MOVWF RT

MOVLW 15H

MOVWF RA

MOVLW 3AH

MOVWF RB

MOVF RA,0

MOVWF RT

MOVF RB,0

MOVWF RA

MOVF RT,0

MOVWF RB

END

實(shí)驗(yàn)二:(選作)

LIST P=16C54

RO EQU 10

RE EQU 11

RN EQU 13

STATU EQU 3

CARRY EQU 0

RR EQU 12

ORG 1FFH

GOTO MAIN

ORG 0

MAIN NOP

MOVLW 99H

MOVWF RN; GIVE VALUE

ANDLW B'10101010'

MOVWF RE

BCF STATU, CARRY

RRF RE; ODD->EVEN

MOVF RN,0

ANDLW &nbs p; B'01010101'

BCF STATU, CARRY

MOVWF RO

RLF RO; EVEN->ODD

MOVF RO,0

IORWF RE,0; ADD THE TWO PARTS OF THE NUMBER BY OR THEM

MOVWF RR

END

調(diào)試結(jié)果:

實(shí)驗(yàn)一結(jié)果:

1、賦值后

2、調(diào)換中

3、調(diào)換后

實(shí)驗(yàn)二結(jié)果:

1、賦值后

2、取奇數(shù)位的數(shù)值存入RE

3、將奇數(shù)位的數(shù)值右移一位

5、取偶數(shù)位的數(shù)值存入RO

6、將偶數(shù)位的數(shù)值左移一位

7、得到最后結(jié)果

實(shí)驗(yàn)分析與實(shí)驗(yàn)體會(huì):

本實(shí)驗(yàn)通過順序結(jié)構(gòu)的簡單程序設(shè)計(jì),我基本掌握了PIC系列單片機(jī)的開發(fā)步驟和命令,熟悉了PIC系列單片機(jī)的開發(fā)環(huán)境MAPLAB,并在具體變成過程中,熟悉匯編語言指令,掌握基本的程序設(shè)計(jì)方法。

雖然本實(shí)驗(yàn)是基本練習(xí),目的是為了熟悉實(shí)驗(yàn)環(huán)境,但是,在實(shí)驗(yàn)中還是學(xué)到了很多東西:

篇5

關(guān)鍵詞:單片機(jī);溫度監(jiān)測(cè);自動(dòng)撥號(hào);語音報(bào)警

中圖分類號(hào):TP2文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3198(2009)06-0272-02

1系統(tǒng)硬件電路的設(shè)計(jì)

1.1系統(tǒng)的功能框圖

系統(tǒng)的主要組成部分包括:溫度傳感器DS18B20、PIC16F877單片機(jī)、可編程鍵盤/顯示器接口芯片8279、OCM4X8C液晶顯示器、MODEM、ISD2560語音芯片和信號(hào)音檢測(cè)模塊CR6230,系統(tǒng)的功能框圖如圖1所示。

系統(tǒng)選用美國Microchip公司生產(chǎn)的價(jià)格低廉、性能優(yōu)良的PIC16F877單片機(jī)作為控制主體,充分利用其提供的軟硬件資源,可使控制系統(tǒng)硬件電路設(shè)計(jì)相對(duì)簡潔,提高系統(tǒng)的可靠性。但由于系統(tǒng)中的各種功能模塊較多,每個(gè)模塊都需要單片機(jī)給出一定數(shù)量的控制線、數(shù)據(jù)線等來完成相應(yīng)的功能,而單片機(jī)的I/O資源有限,所以必須進(jìn)行I/O擴(kuò)展。這里是通過由單片機(jī)的3個(gè)I/O引腳(RC1-RC3)控制譯碼器74LS138從而給出8個(gè)選通信號(hào),分別選通幾個(gè)74LS373和74LS245來實(shí)現(xiàn)對(duì)各模塊的控制與通信的。

此外,需要給單片機(jī)設(shè)計(jì)復(fù)位電路,這里采用RC復(fù)位電路,頻率約為4MHz。

1.2多路溫度采集

針對(duì)測(cè)量環(huán)境、精度和系統(tǒng)主機(jī)對(duì)監(jiān)測(cè)點(diǎn)傳輸距離的不同要求,以及考慮元件的成本,選擇美國DALLAS半導(dǎo)體公司最新推出的一種數(shù)字化單總線器件DS18B20。在硬件上,DS18B20與單片機(jī)的連接有兩種方法。一種是將DS18B20的UDD接外部電源,GND接地,其I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)DS18B20的UDD、GND接地,其I/O接單片機(jī)I/O。無論是內(nèi)部寄生電源還是外部供電,DS18B20的I/O口線要接5K見左右的上拉電阻。DS18B20有六條控制命令,如表1所示。

CPUCPU對(duì)DS18B20的訪問流程是:先對(duì)DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器操作和對(duì)數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。

1.3信息顯示

采用OCM4X8C液晶顯示模塊作為輸出顯示??娠@示漢字及圖形,采用單片機(jī)8位并行連接方式,通過給定命令和顯示數(shù)據(jù)完成不同界面的顯示。當(dāng)單片機(jī)通過譯碼器對(duì)連接液晶顯示模塊的雙向鎖存器74LS245使能,并且相關(guān)引腳通過單片機(jī)傳送適當(dāng)?shù)碾娖綍r(shí),給出一定的指令字。實(shí)現(xiàn)顯示的過程是:在傳送命令的狀態(tài)下先選擇指令集清屏,然后指定在資料寫入或讀取時(shí)游標(biāo)的移動(dòng)方向及顯示的移位,開顯示,設(shè)定顯示地址,然后進(jìn)入傳送數(shù)據(jù)的狀態(tài),根據(jù)要顯示的內(nèi)容從中文字庫中找出相應(yīng)的16進(jìn)制代碼并將其依次傳給液晶顯示器(此時(shí)要注意每行顯示的字?jǐn)?shù)限制),之后單片機(jī)就可以對(duì)液晶顯示模塊進(jìn)行讀寫操作。

1.4撥號(hào)設(shè)計(jì)

采用外置MODEM來實(shí)現(xiàn)撥號(hào)功能,單片機(jī)與MODEM之間采用串行通信,連接方式見圖2。將電話線接入MODEM后,單片機(jī)按照RS232通信標(biāo)準(zhǔn)與MODEM相連,這里是通過MAX232芯片來實(shí)現(xiàn)TTL電平與RS232電平的轉(zhuǎn)換,按照MODEM的工作波特率(9600bps)設(shè)置后,單片機(jī)串口發(fā)出相應(yīng)AT命令可實(shí)現(xiàn)對(duì)MODEM的控制,同時(shí)MO-DEM在執(zhí)行該命令后會(huì)返回一定的信息。返回信息對(duì)于判斷MODEM是否正常工作以及電話是否撥通和被接聽都有重要的作用。

選用4選1模擬開關(guān)4052芯片完成單片機(jī)與MODEM串行通信外和傳感器模塊的MAX485串行通信的控制。當(dāng)單片機(jī)端口C的RC3=1、RC2=0、RC1=1時(shí),譯碼器74LS138的譯碼線Y5有效,使得74LS373有效,因而來自單片機(jī)的RD4位鎖存至4052的INH端,此時(shí)RD4的低電平來控制4052的選通。因4051的INH端通過反相器連接4052的INH端,所以不被同時(shí)選中。

為了實(shí)現(xiàn)MODEM與單片機(jī)的實(shí)時(shí)通信,將系統(tǒng)板上用于連接MODEM的D型插口的RST與CTS互聯(lián),DTR與DSR互聯(lián)。

1.5語音控制模塊

該部分主要是通過單片機(jī)控制語音芯片ISD2560來實(shí)現(xiàn)多段語音存儲(chǔ)和播放。通過給定相應(yīng)段地址和控制信號(hào)(錄放音P/R和使能控制CE),ISD2560及其電路即可實(shí)現(xiàn)對(duì)多段語音的存儲(chǔ)和播放。由于語音的存儲(chǔ)有600個(gè)地址,所以要用A0-A9共十位進(jìn)行表示,對(duì)ISD2560輸入地址,首先單片機(jī)的端口D通過74LS373輸入A0-A7八位地址,然后再單獨(dú)輸入A8、A9兩個(gè)高位地址。錄音和放音是單片機(jī)通過RD7控制錄放音引腳P/R實(shí)現(xiàn)的。

1.6信號(hào)音檢測(cè)模塊

信號(hào)音檢測(cè)模塊CR6230用于實(shí)現(xiàn)準(zhǔn)確識(shí)別各種電話信號(hào)音,包括撥號(hào)音、回鈴音、忙音和催掛音等功能。即:若得出某種結(jié)果后,相應(yīng)的信號(hào)引腳則輸出有效TTL電平。

接聽的判斷過程是單片機(jī)控制MODEM撥號(hào)后,識(shí)別回鈴音信號(hào)是否有效,若無效則重?fù)芑蚋膿芴?hào)碼;回鈴音信號(hào)有效則等待,若其變?yōu)闊o效則判斷此時(shí)對(duì)方是否接聽,此后還要根據(jù)MODEM的返回值來進(jìn)一步確定是否真被接聽。信號(hào)的識(shí)別需要一定的周期才可以保證可靠性和準(zhǔn)確率,所以在檢測(cè)到信號(hào)音后要延時(shí)大約1s的時(shí)間,以保證準(zhǔn)確的識(shí)別結(jié)果;同理,當(dāng)信號(hào)消失后也應(yīng)略有延時(shí)再清除。硬件設(shè)計(jì)是將電話線路經(jīng)通信變壓器CRE變換隔離后接入到CR6230的信號(hào)輸入端IN引腳。通信變壓器CRE3用于電話終端產(chǎn)品和中繼線產(chǎn)品的線路接口部分,技術(shù)指標(biāo)符合郵電部入網(wǎng)標(biāo)準(zhǔn)。將CR6230的BS、RS、PS、SS引腳分別通過鎖存器74LS373與單片機(jī)的D3~D0連接,單片機(jī)通過讀取端口D的低四位就能獲得CR6230返回的當(dāng)前信號(hào)狀態(tài)。另外,若單片機(jī)通過控制譯碼器的Y2引腳將CR6230的CS引腳設(shè)置為接收低電平時(shí),BS、RS、PS、SS引腳也將被設(shè)置為低電平,這樣,其上的信號(hào)被清除以等待接收新的信號(hào)。

2系統(tǒng)的軟件設(shè)計(jì)流程圖

系統(tǒng)軟件設(shè)計(jì)的難點(diǎn)在于對(duì)DS18B20的控制(如圖3)。

3結(jié)語

設(shè)計(jì)以PIC單片機(jī)系統(tǒng)為核心,由單片機(jī)、溫度傳感器、RS-485串口通信和計(jì)算機(jī)組成,利用了DS18B20“一線總線”數(shù)字化溫度傳感器,能夠?qū)Χ帱c(diǎn)的溫度進(jìn)行實(shí)時(shí)巡檢。各檢測(cè)單元(從機(jī))能獨(dú)立完成各自功能,同時(shí)能夠根據(jù)主控機(jī)的指令對(duì)溫度進(jìn)行定時(shí)采集,測(cè)量結(jié)果不僅能在本地顯示,而且可以利用單片機(jī)串行口,通過RS-485總線及通信協(xié)議將采集的數(shù)據(jù)傳送到主控機(jī),進(jìn)行進(jìn)一步的存檔、處理。主控機(jī)負(fù)責(zé)控制指令的發(fā)送,控制各個(gè)從機(jī)進(jìn)行溫度采集,收集測(cè)量數(shù)據(jù),并對(duì)測(cè)量結(jié)果(包括歷史數(shù)據(jù))進(jìn)行整理、顯示和存儲(chǔ)。主控機(jī)與各從機(jī)之間能夠相互聯(lián)系、相互協(xié)調(diào)。本系統(tǒng)運(yùn)行穩(wěn)定、工作精度高,經(jīng)測(cè)試,在-10℃~+70℃間測(cè)得誤差為0.25℃,80℃到105℃時(shí)誤差為0.5℃,當(dāng)T>105℃誤差增大到1℃左右。實(shí)踐證明,該控制系統(tǒng)操作方便,維修簡單,運(yùn)行穩(wěn)定、可靠。

參考文獻(xiàn)

[1]王志鵬.可編程邏輯器原理與程序設(shè)計(jì)[M].北京:北京航天航空出版社,2005.

[2]劉啟中,李容正,王力生,等.PIC單片機(jī)原理及應(yīng)用[M].北京:北京航天航空出版社,2003.

[3]李雪梅.簡單實(shí)用的有線報(bào)警系統(tǒng)[J].微型計(jì)算機(jī)信息測(cè)控自動(dòng)化,2005,(7):144-145.

[4]文哲雄,羅中良.單總線多點(diǎn)分布式溫度監(jiān)控系統(tǒng)的設(shè)計(jì)[J].微型計(jì)算機(jī)信息測(cè)控自動(dòng)化,2005,(6):63-65.

篇6

【關(guān)鍵詞】單片機(jī);PIC16F877A;A/D轉(zhuǎn)換;Proteus

隨著科技進(jìn)步,機(jī)械自動(dòng)化水平不斷提高。當(dāng)前人力資源匱乏,企業(yè)被要求改善工作環(huán)境的背景下,對(duì)傳統(tǒng)機(jī)械進(jìn)行自動(dòng)化改造勢(shì)在必行。本文的研究解決的問題就是為了減輕傳統(tǒng)粉粒物料運(yùn)輸車在卸料過程中對(duì)人工操作的過分依賴。同時(shí)實(shí)現(xiàn)自動(dòng)卸料后可以減輕粉塵對(duì)操作工身體的傷害。

PIC單片機(jī)具有較強(qiáng)的驅(qū)動(dòng)電流,處理數(shù)據(jù)速度較快。內(nèi)部整合了多個(gè)模塊,可以降低電路的開發(fā)難度。

1 電路設(shè)計(jì)與驅(qū)動(dòng)器模型

根據(jù)卸料的步驟,在Proteus里設(shè)計(jì)完成相應(yīng)動(dòng)作的硬件電路。為減小電磁驅(qū)動(dòng)器對(duì)PIC單片機(jī)干擾,這里采用光電耦合元件PC827進(jìn)行強(qiáng)弱信號(hào)隔離。利用小信號(hào)放大管BC184與中功率放大管TIP31、TIP32構(gòu)成H橋直流電磁驅(qū)動(dòng)電路[1],如圖1。

柳州運(yùn)力雙倉粉粒物料運(yùn)輸車的卸料流程圖[2]為:

上圖通過控制信號(hào)端口M3與M4,其組合有以下三種[3]:

(1)M3:M4=01時(shí)的工作原理為:

M3端口為低電平時(shí)Q13、Q10截止,Q15、Q9導(dǎo)通,電磁驅(qū)動(dòng)器左端為高電平。M4端口為高電平時(shí)Q11、Q16截止,Q12、Q14導(dǎo)通,電磁驅(qū)動(dòng)器右端為低電平。此時(shí)電磁驅(qū)動(dòng)器推動(dòng)閥門開啟。

(2)M3:M4=10時(shí)電磁驅(qū)動(dòng)器拉動(dòng)閥門關(guān)閉。

(3)M3:M4=00或者11時(shí)電磁驅(qū)動(dòng)器停止工作。

電磁驅(qū)動(dòng)器利用線圈導(dǎo)電產(chǎn)生電磁力推動(dòng)動(dòng)鐵芯進(jìn)行閥門的開關(guān),電磁驅(qū)動(dòng)器模型[4]如圖3。

根據(jù)圖2控制流程圖,通過Proteus設(shè)計(jì)的系統(tǒng)控制電路。圖中將AN2作為A/D輸入端口,共陽極LED屏顯示實(shí)時(shí)罐體的氣壓值,PIC單片機(jī)通過光電耦合元件PC827與驅(qū)動(dòng)電路隔離。卸料系統(tǒng)電路如圖4。

2 PIC單片機(jī)C語言程序設(shè)計(jì)

當(dāng)前設(shè)置輸入PIC單片機(jī)A/D端口的模擬電壓為0~5V,罐體內(nèi)最大氣壓為0.2MPa。在MPLAB平臺(tái)上利用HI-TECH PICC編寫C語言程序[4]。

利用C語言10個(gè)常用的函數(shù),可以編寫出大部分復(fù)雜PIC單片機(jī)控制程序,使控制程序可讀性較強(qiáng),移植性較好,并且縮短了系統(tǒng)的開發(fā)時(shí)間。

將以上完整程序進(jìn)行編譯燒寫入單片機(jī)內(nèi),在Proteus虛擬環(huán)境中可以模擬卸料的基本動(dòng)作。由于實(shí)際中使用的是電磁驅(qū)動(dòng)器,因其結(jié)構(gòu)簡單須利用機(jī)械結(jié)構(gòu)對(duì)驅(qū)動(dòng)器進(jìn)行限位,從而到達(dá)預(yù)期的閥門開度。

3 控制系統(tǒng)的改進(jìn)

以上控制電路只是實(shí)現(xiàn)了閥門開關(guān)的基本動(dòng)作。從實(shí)際應(yīng)用角度來看,需要添加一些附加功能,才能投入實(shí)際應(yīng)用中。在本系統(tǒng)是一個(gè)可擴(kuò)展控制的電路,在RD的I/O口有多余的引腳,因此對(duì)于三倉的粉粒物料運(yùn)輸車,僅僅需要在RD引腳增加2對(duì)控制端口。對(duì)于不同卸料高度,對(duì)管道內(nèi)二相流體流動(dòng)性有不同的影響。因此可以根據(jù)流體出口的密度,利用PIC單片機(jī)控制助風(fēng)閥的開度,對(duì)管道內(nèi)二相流體流動(dòng)性進(jìn)行控制,提高卸料的效率,同時(shí)便于粉粒物料運(yùn)輸車的卸料系統(tǒng)能夠?qū)崿F(xiàn)智能化。

4 結(jié)論

PIC單片機(jī)高速度、低電壓、低功耗、大電流,減少硬件電路設(shè)計(jì)的復(fù)雜性。圖4所示為卸料系統(tǒng)的基本硬件電路,利用PIC單片機(jī)可以很好的對(duì)電路進(jìn)行簡化,增強(qiáng)電路的可控性。

利用C語言進(jìn)行單片機(jī)編程,可以降低系統(tǒng)的開發(fā)難度。開發(fā)者不必過多的了解單片機(jī)的內(nèi)部結(jié)構(gòu),只需要了解某些外設(shè)特殊寄存器相關(guān)位的設(shè)置。而且C語言比匯編語言可讀性較強(qiáng),能夠更好地發(fā)現(xiàn)編程的邏輯錯(cuò)誤。在MPLAB平臺(tái)上利用HI-TECH PICC編譯器,可以對(duì)所編寫程序進(jìn)行自動(dòng)優(yōu)化,使程序轉(zhuǎn)換成二進(jìn)制時(shí)更加的精煉,減少占用內(nèi)部存儲(chǔ)空間。同時(shí)PICC編譯器可以實(shí)現(xiàn)自動(dòng)分頁,編程者不用過多考慮PIC單片機(jī)分頁問題。對(duì)具有基本C語言能力的編程者,也能較快編寫所需的控制程序。利用PIC單片機(jī)與C語言結(jié)合進(jìn)行控制電路設(shè)計(jì),將極大提高產(chǎn)品設(shè)計(jì)、研發(fā)的效率。

【參考文獻(xiàn)】

[1]韓軍,周鏡平.基于PIC單片機(jī)的直流電機(jī)控制器研究[J].制造業(yè)自動(dòng)化,2011,1(33):147-149.

[2]劉麗,蔣存波,王聰.粉狀物料運(yùn)輸車智能卸料控制器的設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2008,8(23):6372-6374.

篇7

關(guān)鍵詞:PIC;TCP/IP;嵌入式; 以太網(wǎng)

中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2007)12-21589-01

One Kind Embedded Ethernet Based on the PIC Monolithic Integrated Circuit to Turn on the System

LI Zhong-lin,YUN Gui-quan

(Computer Engineering Department,Sichuan College of Vocational and Information Technology,Guangyuan 628017,China)

Abstract:This article constructs the system is Embedded System by the PIC16F877 monolithic integrated circuit achievement the central processing element,and Realizes the TCP/IP agreement stack through the hardware integrated circuit S-7600A agreement stack chip, Because the ethernet already became one kind widely to turn on Internet the way, May turn on through the RTL8019A ethernet control chip this system the ethernet, Then turns on Internet through the ethernet, thus may realize Embedded system regarding this the long-distance access and the control.

Key words:PIC;TCP/IP;Embedded;Ethernet

1 引言

目前大多數(shù)嵌入式系統(tǒng)是以微控制單元(MCU),與一些監(jiān)測(cè)、伺服、指示設(shè)備配合實(shí)現(xiàn)一定的功能。在一些工業(yè)中,有時(shí)要求實(shí)現(xiàn)多個(gè)嵌入式系統(tǒng)之間的信息通信。可以用串行總線RS-232、工業(yè)控制總線CAN等總線將多個(gè)嵌入式系統(tǒng)連接起來形成一個(gè)網(wǎng)絡(luò),但這種網(wǎng)絡(luò)的通信范圍比較小,并且一般是孤立于Internet以外的。Internet現(xiàn)已成為社會(huì)重要的基礎(chǔ)信息設(shè)施之一,是信息流通的重要渠道,如果嵌入式系統(tǒng)能夠連接到Internet上面,則可以方便、低廉地將信息傳送到幾乎世界上的任何一個(gè)地方。

將嵌入式系統(tǒng)與Internet結(jié)合起來的想法其實(shí)很早以前就有了,主要的困難在于,Internet上面的各種通信協(xié)議對(duì)于計(jì)算機(jī)存儲(chǔ)器、運(yùn)算速度等的要求比較高,而嵌入式系統(tǒng)中除部分32位處理器以外,大量存在的是8位和16位MCU,支持TCP/IP等Internet協(xié)議將占用大量系統(tǒng)資源,或根本不可能。

本文將以專用硬件實(shí)現(xiàn)TCP/IP協(xié)議,并以8位PIC單片機(jī)做了中央處理器構(gòu)建一個(gè)能實(shí)現(xiàn)Internet訪問的嵌入式系統(tǒng)。

2 系統(tǒng)硬件

系統(tǒng)框圖

如以上系統(tǒng)框圖所示,主要的硬件包括:PIC16F877,S-7600A,RTL8019A,62256等。下面介紹一下主要部件所完成的功能及在系統(tǒng)中的作用。

(1)PIC16F877

它主要完成系統(tǒng)的數(shù)據(jù)處理功能。要完成從S-7600A來的PPP包的處理使之轉(zhuǎn)換IP包。還要完成對(duì)用戶接口來的數(shù)據(jù)的讀取,處理,以及整個(gè)系統(tǒng)的協(xié)調(diào)。

(2)S-7600A

它是大規(guī)模集成電路工藝的TCP/IP協(xié)議棧芯片,支持:TCP/IP(Ver 4),UDP,PPP協(xié)議。對(duì)從PIC來的數(shù)據(jù)封裝過程如下:

其它部件RTL8019A作為網(wǎng)絡(luò)控制芯片,起網(wǎng)絡(luò)適配功能。62256為32K的SRAM,作為系統(tǒng)的數(shù)據(jù)存儲(chǔ)器。

3 系統(tǒng)的工作流程

4 結(jié)束語

該系統(tǒng)具有體積小,成本低,功耗低等特點(diǎn)。并且采用系統(tǒng)直接接入網(wǎng)絡(luò)的方式,即每個(gè)系統(tǒng)都有自己的IP地址。因此不用再配網(wǎng)關(guān)。

參考文獻(xiàn):

[1]駱麗.嵌入式系統(tǒng)設(shè)計(jì).北京航空航天大學(xué)出版社,2004.

[2]袁勤勇,黃紹金,唐青.嵌入式系統(tǒng)構(gòu)件(原書第2版).機(jī)械工業(yè)出版社,2002.

篇8

0 引言

PIC18F__8單片機(jī)是美國微芯公司推出的16位RISC指令集的高級(jí)產(chǎn)品,由于芯片內(nèi)含有A/D、內(nèi)部E2PROM存儲(chǔ)器、I2C和SPI接口、CAN接口、同步/異步串行通信(USART)接口等強(qiáng)大的功能,具有很好的應(yīng)用前景。但是,目前介紹其應(yīng)用和以C語言編程的中文參考資料很少。本文將探討該型單片機(jī)異步串行通信的編程應(yīng)用,程序用HI-TECH PICC-18 C語言編寫,并在重慶大學(xué)-美國微芯公司PIC單片機(jī)實(shí)驗(yàn)室的PIC18F458實(shí)驗(yàn)板上通過。

1 PIC18FXX8單片機(jī)同步/異步收發(fā)器(USART)

通用同步/異步收發(fā)器(USART)模塊是由PIC18FXX8內(nèi)的三個(gè)串行I/O模塊組成的器件之一(USART也叫串行通信接口即SCI),可以配置為全雙工異步方式、半雙工同步主控方式、半雙工同步從動(dòng)方式三種工作方式。

TXSTA是PIC18FXX8單片機(jī)串行通信發(fā)送狀態(tài)和控制寄存器,RCSTA是接收狀態(tài)和控制寄存器。由于在實(shí)際工程中,異步方式用得最多,這里僅介紹異步工作方式,其它方式可參閱相關(guān)資料。

1.1 USART 異步工作方式

在異步工作方式下,串行通信接口USART采用標(biāo)準(zhǔn)的不歸零(NRZ)格式(1位起始位、8位或9位數(shù)據(jù)位和一位停止位),最常用的數(shù)據(jù)位是8位。片內(nèi)提供的8位波特率發(fā)生器BRG可用來自振蕩器時(shí)鐘信號(hào)產(chǎn)生標(biāo)準(zhǔn)的波特率頻率。通過對(duì)SYNC位(在TXSTA寄存器中)清零,可選擇USART異步工作方式。

1.2 USART波特率發(fā)生器(BRG)

USART帶有一個(gè)8位的波特率發(fā)生器(BRG),這個(gè)BRG支持USRAT的同步方式和異步方式。用SPBRG寄存器控制一個(gè)獨(dú)立的8位定時(shí)器的周期。在異步方式下,BRGH位(控制寄存器TXSTA的)也被用來控制波特率。在同步方式下,用不到BRGH位。表1給出了在主控方式下(內(nèi)部時(shí)鐘)不同USART工作方式時(shí)的波特率計(jì)算式。

表1 主控方式下的波特率計(jì)算式

SYNC

BRGH=0(低速)

BRGH=1(高速)

(異步)波特率=FOSC/[64(X+1)]

波特率 = FOSC/[16(X+1)]

1

(同步)波特率=FOSC/[4(X+1)]

1.3 USART 異步工作方式配置

下面是串行通信異步工作方式配置步驟(順序可以改變):

(1)配置發(fā)送狀態(tài)和控制寄存器TXSTA;

(2)配置接收狀態(tài)和控制寄存器RCSTA;

(3)配置RX(RC7引腳)、TX(RC6引腳)分別為輸入和輸出方式;

(4)通過設(shè)定的通信波特率配置SPBRG寄存器,計(jì)算公式參見表1;

(5)設(shè)置串行通信接收或發(fā)送中斷是否使能;

(6)清串行通信接收或發(fā)送中斷標(biāo)志;

(7)設(shè)置串行通信接收中斷或發(fā)送中斷的優(yōu)先級(jí)是高或低優(yōu)先級(jí)中斷方式,PIC18單片機(jī)默認(rèn)情況下是高優(yōu)先級(jí)中斷,若是低優(yōu)先級(jí)中斷,則必須進(jìn)行設(shè)置;

(8)設(shè)置串行通信接收和發(fā)送數(shù)據(jù)是否允許。

若用到了中斷功能,還需設(shè)置總中斷和中斷使能,以開放未屏蔽的中斷。

2 USART接口硬件電路

利用PC機(jī)配置的串行口,可以很方便地實(shí)現(xiàn)PC機(jī)與PIC18單片機(jī)的串行數(shù)據(jù)通信。PC機(jī)與PIC單片機(jī)USART連接最簡單的是三線方式。由于PIC單片機(jī)輸入、輸出電平為TTL電平,而RS-232C PC機(jī)配置的是RS-232C標(biāo)準(zhǔn)串行接口,二者電氣規(guī)范不一致,因此要完成PC機(jī)與微控制器的串行數(shù)據(jù)通信,必須進(jìn)行電平轉(zhuǎn)換。圖1為PIC18F458單片機(jī)的RS-232電平轉(zhuǎn)換電路。圖中MAX232(或MAX202)將PIC18單片機(jī)TX輸出的TTL電平信號(hào)轉(zhuǎn)換為RS-232C電平,輸入到PC機(jī),并將PC機(jī)輸出的RS232C電平信號(hào)轉(zhuǎn)換為TTL電平輸出到PIC微控制器的RX引腳。J9和PC機(jī)的連接方式見RS-232標(biāo)準(zhǔn),與單片機(jī)相接的D型頭(J9)的2腳(PIC接收信號(hào))與接PC機(jī)D型頭的3腳(PC機(jī)發(fā)送信號(hào))相連,與單片機(jī)相接的D型頭(J9)的3腳(PIC發(fā)送信號(hào))與接PC機(jī)D型頭的2腳(PC機(jī)接收信號(hào))相連,二者的5腳與5腳相連(地相連)。PC機(jī)串口數(shù)據(jù)的發(fā)送和接收顯示均可采用各種串口調(diào)試軟件,我們使用的是串口調(diào)試助手V2.2(或V2.1、V2.0均可),在網(wǎng)上可以下載該調(diào)試軟件,該軟件操作簡單,這里不作介紹。

3 USART異步工作方式編程

串行通信的接收有查詢和中斷2種方式,在實(shí)際應(yīng)用中,一般不采用查詢接收數(shù)據(jù),常用的是中斷接收數(shù)據(jù)。發(fā)送有中斷發(fā)送和非中斷發(fā)送,在下面的例程中我們采用了中斷接收數(shù)據(jù),發(fā)送數(shù)據(jù)采用中斷方式還是非中斷方式可以在程序中通過對(duì)發(fā)送方式標(biāo)志Send_Mode(不為0,中斷方式發(fā)送;=0,非中斷方式發(fā)送)進(jìn)行設(shè)置實(shí)現(xiàn)。

在PIC單片機(jī)發(fā)送數(shù)據(jù)時(shí),發(fā)送中斷標(biāo)志TXIF不能用軟件清0,只有當(dāng)新的發(fā)送數(shù)據(jù)送入發(fā)送數(shù)據(jù)寄存器TXREG后,TXIF位才能被硬件復(fù)位,因此在程序中清該標(biāo)志是無效的。采用中斷發(fā)送數(shù)據(jù)的方法是:在主程序中啟動(dòng)發(fā)送一串?dāng)?shù)據(jù)的第一個(gè)數(shù)據(jù),然后利用發(fā)送完成中斷啟動(dòng)下一個(gè)數(shù)據(jù)發(fā)送,當(dāng)一串?dāng)?shù)據(jù)發(fā)送后,不再發(fā)送數(shù)據(jù),但有發(fā)送完成中斷標(biāo)志,程序還要進(jìn)入一次中斷,這最后一次中斷對(duì)數(shù)據(jù)發(fā)送是無用的,必須將該標(biāo)志清0,采用的方法是禁止發(fā)送使能(TXEN=0)而引起發(fā)送被終止或?qū)Πl(fā)送器復(fù)位。

下面是一個(gè)用串行通信進(jìn)行接收和發(fā)送數(shù)據(jù)的例程,程序?qū)崿F(xiàn)功能:PIC18單片機(jī)接收到PC機(jī)下發(fā)的8個(gè)數(shù)據(jù)后,將收到的8個(gè)數(shù)據(jù)以中斷或非中斷發(fā)送方式返送回PC機(jī)。

#include "pic18.h" /* PIC18系列的頭文件 */

unsigned char receive232[8]; /* 接收數(shù)據(jù)數(shù)組 */

unsigned char send232[8]; /* 發(fā)送數(shù)據(jù)數(shù)組 */

unsigned char receive_count=0; /* 接收數(shù)據(jù)個(gè)數(shù)計(jì)數(shù) */

unsigned char send_count=0; /* 發(fā)送數(shù)據(jù)個(gè)數(shù)計(jì)數(shù) */

unsigned char *point

er; /* 發(fā)送數(shù)據(jù)指針 */

unsigned char i; /* 程序中用到的循環(huán)變量 */

unsigned char SciReceiveFlag; /* =1,接收到8個(gè)數(shù)據(jù) */

unsigned char Send_Mode=0; /* 不為0,中斷方式發(fā)送;=0,非中斷方式發(fā)送 */void sciinitial() /* 串行通訊初始化子程序 */

{

TXSTA=0x04; /* 選擇異步高速方式傳輸8位數(shù)據(jù) */

RCSTA=0x80; /* 允許串行口工作使能 */

TRISC=TRISC|0X80; /* :將RC7(RX)設(shè)置為輸入方式 */

TRISC=TRISC&0Xbf; /* RC6(TX)設(shè)置為輸出 */

SPBRG=25; /* 4M晶振且波特率為9600時(shí),SPBRG設(shè)置值為25 */

PIR1=0x00; /* 清中斷標(biāo)志 */

PIE1=PIE1|0x20; /* 允許串行通訊接口接收中斷使能 */

RCIP=0; /* 設(shè)置SCI接收中斷為低優(yōu)先級(jí)中斷 */

CREN=1; /* 允許串口連續(xù)接收數(shù)據(jù) */

if(0==Send_Mode) TXEN=1; /* Send_Mode=0,非中斷方式發(fā)送,串口發(fā)送數(shù)據(jù)使能 */

else /* Send_Mode=1,中斷方式發(fā)送 */

{

PIE1=PIE1|0x10; /* 允許中斷發(fā)送 */

TXIP=0; /* 發(fā)送低優(yōu)先級(jí)中斷 */

}

}

void interrupt low_priority LOW_ISR() /* 低優(yōu)先級(jí)中斷子程序 */

{

if(RCIF==1) /* RS232接收中斷 */

{

RCIF=0; /* 清中斷標(biāo)志 */

receive232[receive_count]=RCREG; /* 接收數(shù)據(jù)并存儲(chǔ) */

send232[receive_count]=RCREG; /* 接收數(shù)據(jù)存放到發(fā)送緩沖數(shù)組 */

receive_count++; /* 接收計(jì)數(shù)器加1 */

if(receive_count>7) /* 如果已經(jīng)接收到8個(gè)數(shù)據(jù) */

{

receive_count=0; /* 接收計(jì)數(shù)器清0 */

SciReceiveFlag=1; /* 置接收到8個(gè)數(shù)據(jù)標(biāo)志 */

}

}

else if((0!=Send_Mode)&&(TXIF==1)) /* 中斷發(fā)送數(shù)據(jù)方式且為發(fā)送中斷 */

{

if(send_count>7) /* 已經(jīng)發(fā)送完8個(gè)數(shù) */

{

TXEN=0; /* 發(fā)送不使能 */

return;

}

else

{

send_count++; /* 發(fā)送計(jì)數(shù)器加1 */

TXREG=*pointer++; /* 發(fā)送當(dāng)前應(yīng)發(fā)送數(shù)據(jù),發(fā)送指針加1 */

}

}

}

main() /* 主程序 */

{

INTCON=0x00; /* 關(guān)總中斷 */

ADCON1=0X07; /* 設(shè)置數(shù)字輸入輸出口,不用作模擬口 */

PIE1=0; /* PIE1 的中斷不使能 */

PIE2=0; /* PIE2 的中斷不使能 */

PIE3=0; /* PIE3 的中斷不使能 */

Send_Mode=1; /* Send_Mode不為0,中斷方式發(fā)送數(shù)據(jù);

Send_Mode =0,非中斷方式發(fā)送數(shù)據(jù) */

sciinitial(); /* 串行通訊初始化子程序 */

IPEN=1; /* 使能中斷高低優(yōu)先級(jí) */

INTCON=INTCON|0xc0; /* 開總中斷、開接口中斷 */

while(1)

{

if(1==SciReceiveFlag) /* 是否接收到8個(gè)通信數(shù)據(jù) */

{

SciReceiveFlag=0; /* 清接收到8個(gè)通信數(shù)據(jù)標(biāo)志 */

if(0!=Send_Mode) /* Send_Mode不為0,中斷方式發(fā)送 */

{

send_count=0; /* 發(fā)送數(shù)據(jù)計(jì)數(shù)清0 */

pointer=&send232[0]; /* 發(fā)送指針指向發(fā)送數(shù)據(jù)數(shù)組首地址 */

TXREG=*pointer++; /* 發(fā)送第一個(gè)數(shù)據(jù)后,將發(fā)送指針加1 */

TXEN=1; /* 使能發(fā)送 */

}

else /* Send_Mode =0,非中斷方式發(fā)送數(shù)據(jù) */

{

pointer=&send232[0]; /* 發(fā)送指針指向發(fā)送數(shù)據(jù)數(shù)組首地址 */

for(i=0;i<8;i++)

{

TXREG=*pointer++; /* 發(fā)送數(shù)據(jù)后,將發(fā)送指針加1 */

while(1) /* 等待發(fā)送完成 */

{

if(TXIF==1) break; /* 等待發(fā)送完成 */

}

}

}

}

}

}

篇9

關(guān)鍵詞:弧光接地; 金屬接地;鐵磁諧振

中圖分類號(hào):TM864文獻(xiàn)標(biāo)識(shí)碼:A

[WT]文章編號(hào):1672-1098(2011)02-0066-05

收稿日期:2011-03-31

基金項(xiàng)目:合肥學(xué)院科研發(fā)展基金計(jì)劃資助項(xiàng)目(08KY008ZR)

作者簡介:龍夏 (1982-),男,湖南湘西自治州人,助教,碩士,主要研究方向?yàn)闇y(cè)控技術(shù)。

[JZ(〗[WT3BZ]Design of DSPIC-based Arc-Suppression and Resonance Eliminating Device

LONG Xia, TAN Ming , XIAO Lian-jun

(Department of Computer Science & Technology, Hefei University, Hefei Anhui 230601, Chian)

Abstract:In order to solve easy occurrence of arc in current distribution network, over-voltage of metal grounding, magnetic resonance phenomena and its hazards, control algorithm of arc and harmonic elimination was proposed.

How to use the microcontroller hardware and software design to make accurate judgments of grounding and resonant failure, and make them a certain degree of stability and fault tolerance were presented.

Key words:arc grounding; metal grounding; ferro resonance

在我國3~35 kV供電系統(tǒng)中,大部分為中性點(diǎn)不接地系統(tǒng),這種系統(tǒng)在發(fā)生單相接地時(shí),電網(wǎng)仍可帶故障運(yùn)行,這就大大降低了運(yùn)行成本,提高供電系統(tǒng)的可靠性,但這種供電方式在單相接地電流較大時(shí)容易產(chǎn)生弧光接地過電壓和相間短路,給供電設(shè)備造成了極大的危害。以前的解決辦法是在中性點(diǎn)加裝消弧線圈補(bǔ)償電容電流來抑制故障點(diǎn)弧光發(fā)生的機(jī)率。很顯然,這種方法的目的是為了消除弧光,但由于消弧線圈的自身的諸多特點(diǎn),很難對(duì)電容電流進(jìn)行有效補(bǔ)償,特別是高頻分量部分對(duì)供電設(shè)備造成的危害無法克服[1]。

而當(dāng)電壓互感器的非線性電感與線路對(duì)地電容發(fā)生匹配時(shí)會(huì)引起鐵磁諧振過電壓,會(huì)威脅到電力系統(tǒng)的安全運(yùn)行,損壞電氣設(shè)備,嚴(yán)重時(shí)會(huì)引起電壓互感器的爆炸,造成變電站母線停電事故,造成嚴(yán)重后果[2]。長期以來,電力系統(tǒng)中消除鐵磁諧振的方法一般是在PT開口三角繞組中并聯(lián)一個(gè)電阻來破壞諧振點(diǎn),復(fù)雜的電力環(huán)境造成諧振點(diǎn)的不唯一,所以這種方法很難做到完全消諧,費(fèi)時(shí)費(fèi)力。

智能消弧裝置,該裝置在出現(xiàn)弧光接地時(shí),通過一組可以分相控制的真空接觸器,使故障相接地,達(dá)到徹底消除弧光的目的[3]。

本設(shè)計(jì)采用PIC高性能DSP系列單片機(jī)為處理器,實(shí)時(shí)采集電網(wǎng)三相電壓及PT開口電壓,采用合理的算法,當(dāng)檢測(cè)到故障相出現(xiàn)弧光接地時(shí)發(fā)出控制信號(hào),使故障相弧光接地迅速轉(zhuǎn)變?yōu)榻饘傩越拥?,而檢測(cè)到鐵磁諧振時(shí)驅(qū)動(dòng)可控硅動(dòng)作消除由鐵磁諧振引起的過電壓,并配以監(jiān)控界面,便于修改參數(shù),能夠很好地起到消弧消諧的目的,保護(hù)電網(wǎng)安全。

1裝置工作原理

當(dāng)電網(wǎng)正常工作時(shí),PT開口三角處零序電壓為零,一旦線路發(fā)生故障,中性點(diǎn)對(duì)地絕緣的供電系統(tǒng)會(huì)出現(xiàn)零序電壓,將零序電壓作為啟動(dòng)信號(hào)開始計(jì)算,然后再根據(jù)發(fā)生故障時(shí)每相電壓的情況進(jìn)行邏輯分析計(jì)算,判定接地故障發(fā)生的相別及接地屬性,再根據(jù)判定結(jié)果做出以下處理:

1) 如果發(fā)生間歇性弧光接地,控制器使故障相對(duì)應(yīng)的真空接觸器閉合,使系統(tǒng)由不穩(wěn)定的弧光接地瞬間轉(zhuǎn)變?yōu)榉€(wěn)定的金屬接地,故障相電壓降為零,電弧消失。500 ms后斷開真空接觸器,并再次判斷,若故障消失,則說明本地弧光接地為電網(wǎng)電壓沖擊引起的瞬時(shí)性接地故障,系統(tǒng)已恢復(fù)。若再次檢測(cè)到故障,則認(rèn)定為永久性的接地故障,再次閉合真空接觸器,記錄故障,聲光報(bào)警,并向上位機(jī)上傳故障記錄,等待工作人員處理。

2) 如果發(fā)生金屬接地故障,則記錄故障,聲光報(bào)警,不做任何處理,等待工作人員處理。

3) 如果發(fā)生三相斷線故障,則記錄故障,聲光報(bào)警,等待工作人員處理。

4) 如果發(fā)生50 Hz基頻、100 Hz、150 Hz倍頻鐵磁諧振,驅(qū)動(dòng)可控硅三次瞬間短接PT開口端,破壞諧振條件,消除鐵磁諧振,并記錄故障。諧振頻率的判定可以通過快速FFT判別諧振頻率[4]。

2 硬件設(shè)計(jì)

2.1 系統(tǒng)介紹

控制器是系統(tǒng)的核心,其性能的優(yōu)劣直接影響系統(tǒng)的性能。選用DSPIC33FJ128GP206為處理器,電路包括模擬量采樣轉(zhuǎn)換電路、485通信電路、可控硅觸發(fā)電路、真空接觸器觸發(fā)電路、HMI電路及聲光報(bào)警等(見圖1)。由4路電壓互感器采樣三相電壓及PT開口電壓,經(jīng)過一定處理變換為單片機(jī)AD口能夠處理的0~3V電壓,單片機(jī)利用采樣得的4路電壓,輔助以一定的算法,判斷當(dāng)前接入電網(wǎng)是否存在弧光接地、金屬接地、PT斷線以及電磁諧振現(xiàn)象,若存在,在液晶屏上顯示當(dāng)前的故障,存儲(chǔ)故障,并做出相應(yīng)的處理。

圖1 系統(tǒng)框圖

2.2 MCU介紹

在本設(shè)計(jì)采用PIC公司的高性能16位數(shù)字信號(hào)控制器DSPIC33FJ128GP206,16位寬數(shù)據(jù)總線,24位寬指令,可尋址最大4M 指令字的線性程序存儲(chǔ)空間,可尋址最大64 kB 的線性數(shù)據(jù)存儲(chǔ)空間,具有最多67個(gè)中斷源,最多85個(gè)IO口,具有SPI、IIC、UART、DCI、增強(qiáng)型CAN、PWM等外部接口,方便使用,同時(shí)具有兩個(gè)AD通道,可進(jìn)行順序、同時(shí)等各種方式的采樣。在此利用其同時(shí)采樣4路電壓信號(hào),并判定是否發(fā)生弧光接地、諧振等故障,同時(shí)外擴(kuò)鍵盤、顯示、通信、報(bào)警等功能。

2.3 信號(hào)采樣電路

根據(jù)分析需采樣三相交流相電壓電壓UA、UB、UC及PT開口電壓UPT,送入單片機(jī)內(nèi)部AD采樣前需經(jīng)過一定的變換,即降壓、交轉(zhuǎn)直。4路交流電先通過電壓互感器降壓,再通過基準(zhǔn)電壓抬升至直流。電壓互感器選用南京擇明電子的ZM-BPT系列電壓互感器,變比為456 V/3.53 V,額定輸入電壓為380 V,額定輸出電壓為2.941 V,過載倍數(shù)1.2,耐壓強(qiáng)度3 000 V,完全能達(dá)到要求。電壓互感器輸出小信號(hào)交流電,而AD只能處理單極性電壓,所以通過由LM258輸出的1.65 V基準(zhǔn)電壓抬升后轉(zhuǎn)為單極性AD合理范圍的電壓信號(hào),并通過濾波送入AD,同時(shí)加入一個(gè)3.3 V的穩(wěn)壓管保護(hù)AD端口(見圖2)。

圖2 信號(hào)處理電路

對(duì)于DSPIC33系列的單片機(jī),內(nèi)部有兩個(gè)10位/12位AD模塊,最多有32個(gè)模擬量輸入引腳,轉(zhuǎn)換速度最高達(dá)1.1MSPS,最多4通道同時(shí)采樣,可以選擇不同的觸發(fā)源,轉(zhuǎn)換結(jié)果通過DMA傳送,預(yù)排轉(zhuǎn)換序列,在精度要求不是很高的情況下完全能達(dá)到要求。在本設(shè)計(jì)中,要求同時(shí)采樣三相電壓及PT開口電壓,由此算出4路通道的有效值,并判斷開口電壓序列是否出現(xiàn)諧振,DSPIC33的內(nèi)部AD完全能達(dá)到轉(zhuǎn)換要求。 在此選用AN5、AN4、AN3、AN2分別作為三相電壓及PT開口電壓的輸入通道,采用4通道同時(shí)采樣、分時(shí)轉(zhuǎn)換的策略。

2.4 開關(guān)量電路

在系統(tǒng)中需要監(jiān)控機(jī)柜中多路開關(guān)量的狀態(tài),包括三路真空接觸器合閘信號(hào)、三路高壓熔絲熔斷信號(hào)、一路隔離刀開關(guān)信號(hào)及一路遠(yuǎn)程復(fù)位信號(hào)。同時(shí)需要輸出多路開關(guān)量,包括失電報(bào)警、斷線報(bào)警、諧振報(bào)警、三相弧光接地報(bào)警等。電網(wǎng)環(huán)境比較惡劣,現(xiàn)場信號(hào)極易串入弱電系統(tǒng),使系統(tǒng)控制邏輯紊亂甚至損壞。為保護(hù)弱電控制系統(tǒng),所有輸入輸出量與系統(tǒng)接入時(shí)均通過光電隔離,實(shí)現(xiàn)了測(cè)控系統(tǒng)和現(xiàn)場環(huán)境的隔離,增強(qiáng)了系統(tǒng)的抗干擾能力。選用Toshiba的4通道非線性光耦TLP523-4,最大輸出電流可達(dá)150 mA。輸出開關(guān)量通過光耦后驅(qū)動(dòng)固態(tài)繼電器給機(jī)柜相應(yīng)的24 V控制報(bào)警信號(hào)。機(jī)柜相應(yīng)的輸入信號(hào)均為24 V開關(guān)量,有一定的雜波,為保證系統(tǒng)正確運(yùn)行,送入前經(jīng)過簡單的濾波,具體如圖3所示。

圖3 光電隔離

2.5 可控硅觸發(fā)電路

采用先進(jìn)的過零觸發(fā)電路, 以電壓過零型雙向可控硅取代由分立元件組成的功放電路及脈沖變壓器等驅(qū)動(dòng)環(huán)節(jié), 簡化了觸發(fā)控制電路的結(jié)構(gòu), 并提高了控制器的可靠性[5]。

采用MOC3081芯片設(shè)計(jì)晶閘管過零觸發(fā)電路。當(dāng)電力系統(tǒng)正常工作時(shí), PT開口三角處零序電壓為零,一旦系統(tǒng)發(fā)生諧振或單相接地, PT開口三角處即伴有不同頻率成分的零序電壓,多為倍頻電壓和分頻電壓。發(fā)生諧波時(shí),MCU 只需改變MOC3081輸入端電平即可立即觸發(fā)雙向晶閘管導(dǎo)通;切除時(shí),只要撤銷觸發(fā)信號(hào)即可,開關(guān)在電流過零之后會(huì)自行關(guān)斷。這樣,MCU就可有效控制晶閘管的導(dǎo)通及導(dǎo)通時(shí)間,消除有害諧波。具體電路如圖4所示。

圖4 可控硅觸發(fā)電路

2.6 人機(jī)接口

人機(jī)接口由LCD顯示和鍵盤組成。LCD主要顯示一次側(cè)電壓互感器三相電壓、PT開口電壓、故障類型及故障記錄、系統(tǒng)時(shí)間等。鍵盤主要用于系統(tǒng)參數(shù)設(shè)置、故障記錄瀏覽、通信參數(shù)設(shè)置、系統(tǒng)時(shí)間設(shè)置等。

2.7 通信設(shè)置

系統(tǒng)采用485通信,485通信采用差分方式傳輸,可靠性高、傳輸距離遠(yuǎn),在電力系統(tǒng)中得到廣泛應(yīng)用。采用MODBUS通信規(guī)約,報(bào)文格式分為下行報(bào)文(監(jiān)控向裝置下發(fā)報(bào)文)、無故障上行報(bào)文(裝置向監(jiān)控中心上發(fā)報(bào)文)、故障上行報(bào)文(裝置向監(jiān)控中心上發(fā)報(bào)文)。報(bào)文用于上傳故障記錄、三相電壓及PT開口電壓、開關(guān)量狀態(tài)等。

3 軟件設(shè)計(jì)

控制器實(shí)時(shí)采樣三相電壓及PT開口電壓,分別計(jì)算三相電壓及PT開口電壓的有效值。DSPIC33內(nèi)部AD可以實(shí)現(xiàn)4通道同時(shí)采樣,并可以切換通道,實(shí)現(xiàn)任意采樣。在此采樣同步采樣、分時(shí)轉(zhuǎn)換的策略,為方便進(jìn)行FFT,每周波采樣點(diǎn)數(shù)定為128個(gè)點(diǎn),采樣每個(gè)點(diǎn)的時(shí)間為156.25μs,DSPIC內(nèi)部AD完全能達(dá)到要求。在采樣并判斷4路電壓有效值的同時(shí),通過快速FFT判斷PT開口電壓是否出現(xiàn)倍頻、基頻及分頻諧振,主要判斷50 Hz基頻諧振、 100 Hz和150 Hz倍頻諧振、 25 Hz和15 Hz的分頻諧振。為防止由于外部環(huán)境的擾動(dòng)造成控制器的誤動(dòng)作,在設(shè)計(jì)中采用了延時(shí)動(dòng)作的策略,根據(jù)實(shí)驗(yàn),選定在10個(gè)周波內(nèi)連續(xù)出現(xiàn)故障的周波數(shù)大于6個(gè)時(shí)認(rèn)定為故障,否則認(rèn)定為擾動(dòng),取得了良好的效果,不僅能及時(shí)動(dòng)作,同時(shí)提高了抗擾動(dòng)能力(見圖5)。

圖5 控制器主程序流程圖

經(jīng)過理論分析和長期的各種環(huán)境的實(shí)驗(yàn)及經(jīng)驗(yàn), 總結(jié)出一套判斷各種故障的數(shù)據(jù)組, 取得了良好的效果, 并在長期使用中證明是穩(wěn)定可靠的(見表1)。

4 結(jié)束語

本文提出一種基于DSPIC單片機(jī)的消弧消諧一體機(jī)的研制方案,并對(duì)信號(hào)采樣處理、開關(guān)量控制、可控硅控制、人機(jī)接口及通信等模塊進(jìn)行了詳細(xì)的描述,并給出實(shí)現(xiàn)方案。該裝置能夠準(zhǔn)確測(cè)量三相電壓及PT開口電壓,并能準(zhǔn)確判定并消除弧光接地、鐵磁諧振、短線等故障。將故障狀態(tài)記錄在液晶屏上的同時(shí)將故障數(shù)據(jù)記錄并上傳至PC監(jiān)控中心。該系統(tǒng)具有一定的穩(wěn)定性和抗干擾能力,已經(jīng)在某公司研發(fā)成功并投入使用,取得了良好穩(wěn)定的效果。

參考文獻(xiàn):

[1] 高亞棟,杜斌.中性點(diǎn)經(jīng)小電阻接地配電網(wǎng)中弧光接地過電壓的研究[J ]. 高壓電器, 2004, 40 (5):345 - 348.

[2] 郭光榮. 電力系統(tǒng)繼電保護(hù)[M ]. 北京:高等教育出版社, 2006:1-37.

[3] 仁,董浩斌,李景祿.自動(dòng)消弧裝置的接入對(duì)配電網(wǎng)運(yùn)行的影響及對(duì)策[J].華北電力技術(shù),2003(8):18- 21.

篇10

【關(guān)鍵詞】直流電機(jī);單片機(jī);模糊控制;Fuzzy-PID參數(shù)自整定

一、引言

通常,工業(yè)生產(chǎn)中對(duì)于直流電機(jī)轉(zhuǎn)速控制的要求有調(diào)速、加速或減速、穩(wěn)速三個(gè)方面。其中,前兩個(gè)要求已能很好地實(shí)現(xiàn),但工程應(yīng)用中穩(wěn)速指標(biāo)卻往往不能達(dá)到預(yù)期的效果,穩(wěn)速即要求在生產(chǎn)過程中直流電機(jī)能以所需要的轉(zhuǎn)速穩(wěn)定運(yùn)行,并具有良好的抗干擾能力。

穩(wěn)速很難達(dá)到要求的原因在于數(shù)字直流調(diào)速裝置中的PID調(diào)節(jié)器對(duì)被控對(duì)象及其負(fù)載參數(shù)變化適應(yīng)能力差。模糊控制不要求被控對(duì)象的精確模型且適應(yīng)性強(qiáng),為了克服常規(guī)數(shù)字直流調(diào)速裝置的缺點(diǎn),可將模糊控制與PID調(diào)節(jié)器結(jié)合,形成fuzzy-PID復(fù)合控制方案,設(shè)計(jì)能在負(fù)載、模型參數(shù)的大范圍變化以及非線性因素的影響下均可以滿足控制穩(wěn)定轉(zhuǎn)速精度要求的直流電機(jī)控制器。

二、硬件設(shè)計(jì)

整個(gè)直流電機(jī)調(diào)速系統(tǒng)的硬件由電機(jī)控制模塊、速度反饋模塊、隔離保護(hù)模塊、電機(jī)驅(qū)動(dòng)模塊、過流保護(hù)模塊、串口通信模塊幾部分組成。速度反饋模塊由安裝在直流電機(jī)的輸出軸上的增量式光電編碼盤反饋電機(jī)的實(shí)際位置,它的輸出直接聯(lián)到LM629的A、B輸入端,形成反饋環(huán)節(jié)。主控單元采用AT89S52單片機(jī)實(shí)現(xiàn)模糊控制以及與運(yùn)動(dòng)控制芯片LM629的數(shù)據(jù)傳送,單片機(jī)通過LM629獲得電機(jī)轉(zhuǎn)速數(shù)據(jù),并通過中值濾波得到實(shí)際轉(zhuǎn)速V,之后經(jīng)模糊運(yùn)算得到的KP、KI、KD參數(shù),再發(fā)送至LM629。電機(jī)驅(qū)動(dòng)模塊采用LMD18200實(shí)現(xiàn)受限單極性驅(qū)動(dòng)方式。過流保護(hù)模塊采用比較器LM339構(gòu)成。系統(tǒng)采用RS232串口與PC機(jī)實(shí)現(xiàn)通信。

三、軟件設(shè)計(jì)

(一)直流電機(jī)Fuzzy-PID控制器的設(shè)計(jì)

本控制系統(tǒng)采用Fuzzy-PID參數(shù)自整定控制,即在一般的PID控制系統(tǒng)的基礎(chǔ)上,采用模糊推理思想,加上一個(gè)模糊推理環(huán)節(jié)。模糊推理環(huán)節(jié)是為了根據(jù)系統(tǒng)實(shí)時(shí)狀態(tài)調(diào)節(jié)PID的參數(shù)而設(shè)置的。

由Fuzzy-PID參數(shù)自整定控制系統(tǒng)結(jié)構(gòu)圖可知,模糊控制器實(shí)際上是對(duì)PID調(diào)節(jié)參數(shù)進(jìn)行修正,其輸入語言變量為直流電機(jī)轉(zhuǎn)速偏差絕對(duì)值│E│和直流電機(jī)轉(zhuǎn)速偏差變化率絕對(duì)值│EC│,輸出語言變量為KP、KI、KD三個(gè)參數(shù)。

用于在線自整定PID參數(shù)的模糊控制器是以誤差和誤差變化率為輸入語言變量,以比例系數(shù)、積分系數(shù)和微分系數(shù)為輸出語言變量的雙輸入三輸出模糊控制器,其控制規(guī)則其控制規(guī)則就是對(duì)參數(shù)KP、KI、KD的調(diào)節(jié)規(guī)則。由此可建立模糊調(diào)節(jié)規(guī)則表,再通過模糊推理和模糊運(yùn)算,計(jì)算得到KP、KI、KD參數(shù)的精確值,以此做為PID調(diào)節(jié)的整定值,從而實(shí)現(xiàn)Fuzzy-PID參數(shù)自整定控制的功能。

(二)控制系統(tǒng)AT89S52單片機(jī)程序?qū)崿F(xiàn)

在本系統(tǒng)中單片機(jī)主要工作是對(duì)LM629的控制,其中包括LM629硬件軟件啟動(dòng)、相關(guān)運(yùn)動(dòng)參數(shù)的設(shè)定,速度數(shù)據(jù)采集,實(shí)現(xiàn)模糊控制,并完成與上位機(jī)的數(shù)據(jù)通信。單片機(jī)程序采,其內(nèi)部含有梯形速度發(fā)生器和數(shù)字PID調(diào)節(jié)器,極大地簡化了位置伺服控制模塊的軟件設(shè)計(jì)。其PID控制算法可表示為:

為進(jìn)一步提高控制精度,達(dá)到穩(wěn)速的效果,對(duì)此算法進(jìn)行改進(jìn)后得到Fuzzy-PID參數(shù)自整定控制算法。即在PID算法的基礎(chǔ)上,通過計(jì)算當(dāng)前系統(tǒng)誤差e和誤差變化率e,e、e則構(gòu)成此二維模糊控制器的輸入量,再利用模糊規(guī)則進(jìn)行模糊推理,實(shí)時(shí)計(jì)算進(jìn)行PID參數(shù)調(diào)整,得到此時(shí)針對(duì)直流電機(jī)轉(zhuǎn)速調(diào)節(jié)最適合的PID參數(shù)。

模糊隸屬度函數(shù)的實(shí)現(xiàn)方式可以采用的點(diǎn)斜式存儲(chǔ)方式實(shí)現(xiàn)。為了簡化該程序設(shè)計(jì),實(shí)驗(yàn)中將│E│和│EC│共設(shè)置為5種簡單組合。

四、結(jié)論

通過實(shí)驗(yàn),F(xiàn)uzzy-PID參數(shù)自整定控制系統(tǒng)較好地實(shí)現(xiàn)了對(duì)直流電機(jī)轉(zhuǎn)速的穩(wěn)定控制。加上上位機(jī)監(jiān)控平臺(tái)的使用,使對(duì)該直流電機(jī)的轉(zhuǎn)速控制更加方便快捷。當(dāng)前,直流電機(jī)調(diào)速系統(tǒng)的控制方案層出不窮,并且控制效果也越來越好,自適應(yīng)模糊控制及模糊神經(jīng)網(wǎng)絡(luò)控制等智能控制方式也是直流調(diào)速系統(tǒng)控制的重要手段。

參考文獻(xiàn):

[1] 陳梅,楊琳琳,許正榮.直流電機(jī)的模糊PID控制[J].自動(dòng)化技術(shù)與應(yīng)用,2008,02.

[2]紀(jì)友芳,林美娜.模糊PID復(fù)合智能控制參數(shù)自整定研究[J].微計(jì)算機(jī)應(yīng)用,2007,08.