往期系列文章推薦:
全球主流8位MCU芯片詳細解剖No.1:飛思卡爾 MC9S08AC60
PIC16F877簡介
PIC16F877是由Microchip公司所生產開發的8位MCU,屬于PICmicro系列單片微機,具有Flash program程序內存功能,可以重復燒錄程序,適合教學、開發新產品等用途;而其內建ICD(In Circuit Debug)功能,可以讓使用者直接在單片機電路或產品上,進行如暫停微處理器執行、觀看緩存器內容等,讓使用者能快速地進行程序除錯與開發。
如圖為PIC16F877的40根引腳圖,PDIP是指一般最常見的DIP(Dual In Line Package)包裝,而PIC單片機也有PLCC(Plastic Leaded Chip Carrier)與QFP(Quad Flat Package)兩種形式的包裝,依照不同的需求,尋找不同的包裝形式。如圖所示,每根接腳都有其特定功能,例如Pin11與Pin32(VDD)為正電源接腳,Pin12與Pin31(VSS)為地線接腳;而有些接腳有兩種甚至三種以上功能,例如Pin2(RA0/AN0)代表PORTA的第一支接腳,在系統重置(Reset)后,可自動成為模擬輸入接腳,接收模擬訊號,也可經由程序規劃為數字輸出輸入接腳。
圖1. PDIP40引腳PIC16F877接腳說明
圖2. PDIP28和SOIC28引腳PIC16F877接腳圖說明
圖3. PLCC44引腳PIC16F877腳位圖說明
圖4. QFP44引腳PIC16F877引腳圖說明
PIC16F877屬于閃控式(Flash)單片機,可以重復燒錄,其ROM的容量總共是8K words,以2K為一個page,區分為4個pages;內部RAM總共有512個字節(00f~1FFh),以128個字節為一個Bank,共區分為4個Bank,如圖5所示,每個Bank的前半段都有其特殊用途,分別連接到其特殊功能模塊,例如I/O、CCP、Timer、USART、MSSP等。
圖5. PIC16F877的RAM配置
特殊內嵌功能
PIC16F877屬于內嵌功能較多的單片機,除了CPU、POM、RAM、I/O等基本構造外,還包括以下各種功能,簡介如下:
A/D converter:模擬數字轉換器,最多可以讀取8組模擬輸入訊號。
CCP:Capture、Compare、PWM,用于控制直流馬達。
Timer,內部定時器,有Timer0、Timer1、Timer2等。
USART:Universal Synchronous Asynchronous Receiver Transmitter,同步/異步串行傳輸,如RS232、RS485等。
MSSP;Master Synchronous Serial Port,兩線式(I2C)與三線式(SPI)標準同步串行傳輸協定,常用于EEPROM內存資料的燒錄與讀取,或是與其它集成電路溝通與聯系,形成多芯片網絡。
PIC16F877基本電路
PIC振蕩頻率電路
單片機振蕩電路與整體系統工作速度有直接的關系,例如同步∕異步串行傳輸、定時器等,都與振蕩頻率有關,不同系列單片機有不同振蕩頻率,根據產品資料手冊,PIC16F877振蕩頻率最高可到20MHz;在圖1中,振蕩電路接于Pin13(OSC1/CLKIN)與Pin14(OSC2/CLKOUT),而振蕩電路有以下四種形式:
LP:使用低功率振蕩晶體(Low Power Crystal)
XT:使用振蕩器∕諧振器(Crystal/Resonator)
HS:使用高速振蕩器(High Speed Crystal/Resonator)
RC:使用電阻∕電容(Resister/Capacitor)
一般常用振蕩晶體或是諧振器作為單片機振蕩源,外接電路及PIC內部電路說明如圖6所示。圖中電容C1與C2規格大小是根據Crystal或Resonator而有所不同,表1列出電容建議值,使用其它振蕩源的電路說明請參考產品資料手冊。
圖6. 振蕩源電路圖
表1. 建議電容值
外加電源與重置電路
PIC16F877的工作電壓為5V,連接Pin11與Pin32,Pin12與Pin31為地線接腳;重置電路連接Pin1,按下Reset后,內部指令重頭開始執行,系統重新運作。
圖7. 電源與重置電路
輸入輸出接口
PIC16F877除了上述基本電路所占用的7支接腳外,其余的33支接腳都可當成輸出、輸入接腳,輸入輸出端口是單片機基本界面,可以與周邊電路進行電路控制和信號傳輸與檢測。PIC是8位的單片機,以接腳特性分組,每組盡量湊滿8支接腳,并將I/O命名為PORTA(RA0~RA5)、PORTB(RB0~RB7)、PORTC(RC0~RC7)、PORTD(RD0~RD7)和PORTE(RE0~RE2)等,各分組接口特性說明如下:
PORTA
PIC16F877的PORTA總共有6個位(RA0~RA5),PORTA的接腳可作為數字輸出輸入端口,而系統重置后,PORTA自動成為模擬輸入狀態,可讀取模擬輸入訊號。
PORTB
PORTB總共有8個位(RB0~RB7),可以撰寫程序規劃輸入輸出方向、狀態,其中,要進行燒錄時,使用到三支接腳,分別是Pin36(RB3/PGM)、Pin39(RB6/PGC)與Pin40(RB7/PGD)。
PORTC
PORTC總共有8個位(RC0~RC7),除了可作為數位I/O外,還和一些特殊功能的周邊電路共享接腳,例如CCP(直流馬達控制)、I2C、SPI(同步串行通訊電路)、UART(異步串行傳輸電路)等等。
PORTD
PORTD總共有8個位(RD0~RD7),可作一般數字I/O,并與PSP(Parallel Slave Port)并列傳輸接口共享。當整體系統需要多單片機時,彼此可以經由并列傳輸接口來快速傳輸資料。
PORTE
PORTE總共有3個位(RE0~RE2),PORTE的Pin8、9、10有三種功能,除了基本I/O功能,也有模擬輸入功能,而上述PORTD的并列傳輸接口設定所需的控制接腳,如/RD、/WR、/CS等,也是屬于PORTE接腳。
PIC16F877指令簡介
PIC16F877常用的語言有匯編語言與C語言兩種,匯編語言是將每一個機器碼使用一個文字代號代表,比較接近處理器真正動作模式;而C語言是比較符合人們的使用習慣,事先將匯編語言組合成C語言形式,使用較為方便,但是C語言所組譯的機器碼程序通常比較大,且組譯軟件通常需要額外購買。以下簡介匯編語言相關指令與一套C語言組譯軟件。
PIC16F877指令摘要
PIC是采用RISC(Reduced Instruction Set Computing,精簡指令集),與8051系列采用的CISC(Complicated Instruction Set Computing,復雜指令集)不同,PIC16F877所有指令指有35個,8051高達111個指令。
汽車電動助力轉向系統
1 引言
隨著電子控制技術的發展及其在汽車領域的廣泛應用, 電動助力轉向系統(Electric Power Steering, 簡稱EPS)越來越成為目前汽車電子技術研究的熱點之一。與傳統的轉向系統相比,EPS系統結構簡單,靈活性大,可以獲得理想的操縱穩定性,能動態地適應汽車行駛狀況的變化,在操縱舒適性、安全性、環保、節能、易于維修等方面也充分顯示了其優越性[1]。目前, 電動助力轉向已部分取代液壓助力轉向并獲得廣泛應用,如日本的大發、三菱、本田汽車公司,美國的Delphi汽車系統公司,德國的ZF公司等都相繼研制出各自的EPS并裝配使用。國內對EPS 系統的研究起步較晚,僅有清華、華中科大、吉林大學、合肥工大等高校開展了系統結構的方案設計、系統建模和動力學分析等研究,但處在理論探索、實驗研究階段。國內部分汽車廠商如重慶長安、南昌昌河、東風、一汽等與高校聯合研究,也都處在研制的初級階段,未達到實用程度[2]。
2.1 EPS的硬件組成
EPS是一種直接依靠電力提供輔助扭矩的動力轉向系統,結構如圖2-1所示,它由電子控制單元(ECU)控制電機提供助力,系統主要由電子控制單元、扭矩傳感器、轉角傳感器、車速傳感器(可與其他系統共用)、直流電機、離合器、電磁繼電器、減速機構和轉向機構等組成。
圖2-1 EPS系統結構圖
2.2 EPS的工作原理
當汽車點火開關閉合時,ECU上電開始對EPS系統進行自檢,自檢通過后,閉合繼電器和離合器,EPS系統便開始工作,當方向盤轉動時,位于轉向軸上的轉角傳感器和扭矩傳感器把測得方向盤上的角位移和作用于其上的力矩傳遞給ECU,ECU根據這兩個信號并結合車速等信息,控制電機產生相應的助力,實現在全速范圍內最佳控制:在低速行駛時,減輕轉向力,保證汽車轉向靈活、輕便,在高速行駛時,適當增加阻尼控制,保證轉向盤操作穩重、可靠。
3 基于PIC單片機的ECU系統設計
圖3-1 ECU系統結構原理圖
3.1 ECU工作原理
系統的控制核心為PIC16F877單片機,控制單元結構如圖3-1所示。整個系統由車載 12V蓄電池供電,ECU工作時,扭矩、轉角、車速、溫度等傳感器把采集到的信號經過輸入接口電路處理后送至單片機的相應端口, 單片機根據系統助力特性和相應算法對這些數據分析處理,以確定助力電流的大小和方向,并通過單片機的PWM口發出脈沖指令和相應的換向控制端口發出換向指令,通過驅動電路和H橋電路控制直流電動機工作。在電動機的驅動電路上設有電流傳感器,該傳感器把檢測到的電機實際工作電流通過電流探測電路反饋到單片機,單片機再根據相應的控制算法對電機實現閉環控制。如EPS系統工作出現異常,單片機將驅動EPS燈亮進行報警提示,同時斷開繼電器、離合器,退出電動助力工作模式,轉為人工手動助力模式[3]。
3.2 PIC16F877單片機簡介
該款機型是美國Microchip公司生產的8位RISC結構的單片機,具有高速數據處理的特性(執行速度可達 120ns),PIC16F877內部自帶看門狗定時器、具有256Bytes的EEPROM、8k空間的FLASH存儲器、8路10位AD轉換功能、2 個脈寬調制CCP模塊、在線燒錄調試(ISP)功能,寬電壓工作,可靠性高。PIC16F877有8級深度的硬件堆棧,RAM區的每個Byte位都可以尋址,有4條專用的位操作指令和2條移位指令。
3.3 直流電動機的選擇
無刷直流電機在控制特性、效率、轉矩脈沖、制造成本等方面,具有明顯的優勢。本項目采用永磁式無刷直流電機做為驅動源。
3.4 扭矩、轉角傳感器的選擇
本文采用意大利BI公司的扭矩、位置復合傳感器,該傳感器除了提供扭矩信號外,還提供方向盤位置信號,為回正和阻尼邏輯的開發提供了便利。
3.5 電動機驅動控制電路的設計
電動機驅動控制電路必須能夠高精度、快速地調整電動機的轉速和輸出轉矩,從而滿足EPS系統實時性和可靠性的要求。本項目中后向通道的核心控制采用脈寬調制(PWM)控制H橋電路。直流電機PWM控制方式有多種,根據電機工作的實際需要和系統的整體要求,本項目采用受限單極可逆PWM控制模式,主要優點在于可以避免開關管同臂導通,運行可靠性高、不需附加延時電路、開關頻率相對較高,特別適用于大功率、大轉動慣量、可靠性要求較高的直流電機控制的場合。
3.5.1 電機驅動電路
電動機的驅動電路主要包括FET橋式電路、FET基極驅動電路、電機驅動線路上的電流傳感器和繼電器構成。
FET橋式電路主要由四個大功率MOSFET功率管組成,要求功率管具有良好的開關特性、能承受較大的驅動電流、且具有較長的使用壽命,根據電機的功率參數及功率管的極限參數和電特性,我們采用四個相同的N溝道IRFP250功率管來構成H橋電路。
FET 基極驅動電路選用MOSFET專用柵極集成電路IR2109作為核心模塊,該芯片是一種單通道、柵極驅動、高壓高速功率器件,采用高度集成的電平轉換技術,大大簡化了邏輯電路對功率器件的控制要求,上管采用外部自舉電容上電,使驅動電源數目大大減少,控制了電路板的體積,降低了成本,提高了系統可靠性 [4]。
驅動電路如圖3-2所示,兩個IR2109的IN端為驅動H橋同臂上下兩個功率管的信號脈沖輸入端,分別通過具有高速性能的6N137光電耦合器接至PIC16F877單片機的兩個PWM脈沖輸出端口;兩個SD端分別與單片機的一個I/O口相連,控制電機停車操作;每個芯片的HO和LO端分別與同橋臂的功率管相連,控制電機轉速;VB端通過自舉二極管UF1005與+12V 電源相連,為了阻斷特殊電路中所承受的全部電壓,此處選用具有超快恢復特性的二極管UF1005。
圖3-2 電機驅動電路
3.5.2 電機電流采樣電路
系統進行電流采樣有兩方面用途,一是為電動機提供保護;二是通過電流傳感器反饋電樞電流的信號,以便對電樞電流進行閉環控制。標準電阻是一種常用的電流傳感器,由于其簡單可靠、阻值穩定、精度高、頻響好、輸出電壓直接比例于所流過的電流,在 PWM 系統中應用相當廣泛。標準電阻一般采用錳銅或硅錳銅制成。在采樣電路中,選用AD626把采樣信號放大10的n倍送至單片機相應端口,具體電路如圖 3-3。
圖3-3 電機電流采樣電路
3.6 繼電器控制電路
如下圖3-4所示,CPU控制信號經CPU端口PSP0輸出后,開關管 Q1導通并驅動功率三極管 Q12,使繼電器通電并閉合節點,繼電器節點閉合后可給電機、離合器供電。CPU輸出的高低電平信號分別控制繼電器的合開操作。
圖3-4 繼電器控制電路設計
4 結論
本文在對EPS系統的原理和助力控制過程的分析基礎上,對 EPS 控制系統的硬件電路進行了研究設計,提出了采用受限單極性可逆PWM控制模式控制直流電機;探索了在汽車電動助力轉向系統中,低壓、低速、大電流永磁式無刷直流電機的控制方法。采用精密電阻進行電機電流采樣的方法,實現了對直流電機輸出扭矩的閉環控制。在完成了硬件電路設計和軟件編程后,按照預定的助力特性曲線,對EPS系統進行了臺架試驗,試驗結果表明:電子控制單元信號采集的實時性較高,對電機閉環控制的跟隨性較好,整個系統具有良好的電動助力特性,硬件部分的抗干擾能力和可靠性都很高。
超聲波測距系統設計
引言
在自主行走機器人系統中,機器人要實現在未知和不確定環境下行走,必須實時采集環境信息,以實現避障和導航,這必須依靠能實現感知環境信息的傳感器系統來實現。視覺、紅外、激光、超聲波等傳感器都在行走機器人中得到廣泛應用。由于超聲波測距方法設備簡單、價格便宜、體積小、設計簡單、易于做到實時控制,并且在測量距離、測量精度等方面能達到工業實用的要求,因此得到了廣泛的應用。本文所介紹的機器人采用三方超聲波測距系統,該系統可為機器人識別其運動的前方、左方和右方環境而提供關于運動距離的信息。
1 超聲波測距原理
超聲波發生器內部由兩個壓電片和一個共振板組成。當它的兩極外加脈沖信號,且其頻率等于壓電晶片的固有振蕩頻率時,壓電晶片將會發生共振,并帶動共振板振動,便產生超聲波。反之,如果兩極間未加外電壓,當共振板接收到超聲波時,就成為超聲波接收器。超聲波測距一般有兩種方法:①取輸出脈沖的平均電壓值,該電壓與距離成正比,測量電壓即可測量距離;②測量輸出脈沖的寬度,即發射超聲波與接收超聲波的時間間隔t,根據被測距離s=vt?2來得到測量距離,由于超聲波速度v與溫度有關,所以如果溫度變化比較大,應通過溫度補償的方法加以校正。
本測量系統采用第二種方法,由于測量精度要求不是特別高,所以可以認為溫度基本不變。
本系統以PIC16F877單片機為核心,通過軟件編程實現其對外圍電路的實時控制,并提供給外圍電路所需的信號,包括頻率振動信號、數據處理信號等,從而簡化了外圍電路,且移植性好。系統硬件電路方框圖見圖1。
由于本系統只需要清楚機器人前方、左方、右方是否有障礙物,并不需要知道障礙物與機器人的具體距離,因此不需要顯示電路,只需要設定一距離閥值,使障礙物與機器人的距離達到某一值時,單片機控制機器人電機停轉,這可通過軟件編程實現。
2 超聲波發射電路
超聲波的中心頻率為40kHz,該頻率可以通過以下程序產生(部分源程序):
2.1 超聲波發射電路
超聲波發射電路以PIC16F877為核心,當單片機上電時,單片機從RA0口產生40kHz的超聲波信號,但是此時該信號無法通過與非門進入放大電路使超聲波發射頭發射超聲波,只有閉合開關S1時,從RA1口發射出一門控信號,該信號的頻率為4kHz,同時啟動單片機內部的定時器TMR1,開始計數。該門控信號每發射一個周期的波形,超聲波就會發射10個完整的波形,這可由它們的頻率得出。超聲波的周期為1(40kHz)=01025ms,而門控信號的周期為1(4kHz)=0125ms。最后根據s=vt2求出障礙物與移動機器人的距離。當超聲波接收頭收到反射回來的超聲波時,計數器停止計數,時間t可以根據計數器的計數與門控信號的周期求出。RA2口接RS觸發器,RS觸發器可以自動控制超聲波的發射和停止。本系統的電路還包括人工復位電路,由單片機的MCLR引腳接S2來控制,超聲波發射電路圖見圖2。
2.2 門控電路(RS觸發器)
為實現對超聲波發射和接收的自動控制,須在電路中加一門控電路,該門控信號頻率為4kHz,如把輸出脈沖作為閘門信號,讓已知頻率fc的脈沖恰好通過閘門,那么t=NTc,其中,Tc為已知脈沖的周期,N為脈沖的個數。
門控電路由RS觸發器組成,當輸入端R=1(S=0)時復位,即輸出端Q=0;當R=0(S=1)時置位,即Q=1。RS觸發器與單片機的RA2口相連。
2.3 超聲波放大電路
超聲波放大電路由三極管等組成,由于單片機RA口最多只有20mA~25mA上拉電流,而超聲波發射器最小需要60mA的電流,所以在與非門后加一級放大電路來放大電流,以完成超聲波的發射。超聲波放大發射電路見圖3。
3 超聲波接收電路
3.1 超聲波接收放大電路
由于超聲波接收頭接收到的超聲波信號很微弱,所以在其后需加一超聲波接收放大電路。該電路采用兩個集成運放,設計為兩級,兩級都為同相輸入,因為同相輸入的電壓放大倍數為1+RfR,所以每一級的放大倍數為10,兩級放大倍數接近100倍,這樣后續電路就可以很容易地檢測到輸入的信號。集成運放采用雙電源供電,超聲波接收放大電路見圖4。
3.2 信號濾波電路
從信號放大電路出來的聲波帶有一定的干擾,為了去除干擾信號,需要一濾波電路,信號濾波電路選用帶通濾波器電路,使其中心頻率為40kHz、帶寬為2kHz,外加一過零比較器,使輸出信號轉化為方波信號。信號濾波電路見圖5。
3.3 信號整形電路
從信號濾波電路出來的方波信號很不規則,故其后加一整形電路,整形電路由兩級非門串聯,并聯一電阻組成,整形后再送單片機進行處理,信號整形電路見圖6。
4 軟件程序設計
軟件采用模塊化設計,由主程序、發射子程序等組成,軟件程序框圖見圖7。
5 結語
本文設計的超聲波測距系統采用了單片機編程技術,配合硬件完成了系統的要求,其精度能滿足大部分的工程需要。與傳統的測距系統相比,具有結構簡單、價格便宜、移植性好等特點。
?
PIC16F877的相關資料下載:
評論
查看更多