《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于PSoC的紅外線通信測(cè)控系統(tǒng)
基于PSoC的紅外線通信測(cè)控系統(tǒng)
來(lái)源:微型機(jī)與應(yīng)用2012年第6期
韓 旭,于小億
(蘭州大學(xué) 信息科學(xué)與工程學(xué)院,甘肅 蘭州730000)
摘要: 在分析研究紅外線發(fā)射器和接收器原理的基礎(chǔ)上,以可編程片上系統(tǒng)PSoC芯片為核心部件,利用PSoC集成開(kāi)發(fā)環(huán)境Creator內(nèi)嵌的固件元件,進(jìn)行了紅外線通信測(cè)控系統(tǒng)的軟件和硬件設(shè)計(jì)。PSoC是一款以ARM和CPLD兩大功能部件組成的混合處理器。在Creator環(huán)境下,固件元件類(lèi)似于面向?qū)ο蟪绦蛟O(shè)計(jì)的控件,使硬件設(shè)計(jì)軟件化,與硬件相關(guān)的源程序編譯器自動(dòng)生成。采用PSoC設(shè)計(jì)的紅外線發(fā)送與接收電路具有硬件設(shè)計(jì)簡(jiǎn)單、軟件設(shè)計(jì)圖形化、可以充分利用PSoC提供的固件元件的優(yōu)點(diǎn)。PSoC非常適合在通信和測(cè)控中應(yīng)用。
關(guān)鍵詞: PSoC Creator 紅外線通信 元件 固件
Abstract:
Key words :

摘  要: 在分析研究紅外線發(fā)射器和接收器原理的基礎(chǔ)上,以可編程片上系統(tǒng)PSoC芯片為核心部件,利用PSoC集成開(kāi)發(fā)環(huán)境Creator內(nèi)嵌的固件元件,進(jìn)行了紅外線通信測(cè)控系統(tǒng)的軟件和硬件設(shè)計(jì)。PSoC是一款以ARM和CPLD兩大功能部件組成的混合處理器。在Creator環(huán)境下,固件元件類(lèi)似于面向?qū)ο蟪绦蛟O(shè)計(jì)的控件,使硬件設(shè)計(jì)軟件化,與硬件相關(guān)的源程序編譯器自動(dòng)生成。采用PSoC設(shè)計(jì)的紅外線發(fā)送與接收電路具有硬件設(shè)計(jì)簡(jiǎn)單、軟件設(shè)計(jì)圖形化、可以充分利用PSoC提供的固件元件的優(yōu)點(diǎn)。PSoC非常適合在通信和測(cè)控中應(yīng)用。
關(guān)鍵詞: Creator;PSoC;紅外線通信;元件;固件

    紅外線通信由于結(jié)構(gòu)簡(jiǎn)單、成本低,在家用電器、儀器儀表、工業(yè)控制中得到了廣泛的應(yīng)用。實(shí)現(xiàn)紅外線通信的方案很多,但主要是由專(zhuān)有集成電路和單片機(jī)實(shí)現(xiàn)兩種。由專(zhuān)用集成電路實(shí)現(xiàn)的紅外線通信主要是各種遙控器,但是它難以和單片機(jī)接口,應(yīng)用的靈活性差。單片機(jī)實(shí)現(xiàn)的紅外線發(fā)射器與接收器能方便地與其他電路模塊連接組成應(yīng)用系統(tǒng),在各種測(cè)量和控制系統(tǒng)中有大量應(yīng)用。本文介紹一種由特殊的單片機(jī),即可編程片上系統(tǒng)PSoC組成的紅外線通信測(cè)控系統(tǒng)的應(yīng)用實(shí)例。PSoC5是由Cypress公司生產(chǎn)的ARM Cortex-M3和CPLD兩大部分組成的芯片。它以固件元件的模式提供了許多模擬和數(shù)字功能單元,在集成開(kāi)發(fā)環(huán)境Creator的支持下,這些功能單元和元件在畫(huà)板上放置、連接、引腳定義并進(jìn)行屬性配置形成設(shè)計(jì)原理圖,這個(gè)原理圖的功能由CPLD實(shí)現(xiàn)并與ARM微處理器連接。Creator的編譯器將各個(gè)元件生成其對(duì)應(yīng)的C語(yǔ)言文件,開(kāi)發(fā)者只需在C語(yǔ)言框架程序中修改或編寫(xiě)中斷、DMA和main程序即可完成軟件設(shè)計(jì)。這種圖形化編程方法不需要開(kāi)發(fā)者了解PSoC芯片的底層硬件結(jié)構(gòu),編寫(xiě)的代碼非常少,降低了開(kāi)發(fā)的技術(shù)難度[1]。本設(shè)計(jì)所采用的PSoC實(shí)施方案對(duì)其他嵌入式設(shè)計(jì)也具有一定的指導(dǎo)作用。  
1 紅外線通信測(cè)控系統(tǒng)構(gòu)成
    紅外線通信測(cè)控系統(tǒng)的結(jié)構(gòu)如圖1所示。發(fā)送電路的電阻R1為510 ?贅,R2為10 ?贅,晶體管T1為9013。主機(jī)可以是任何帶有串行接口的計(jì)算機(jī)或嵌入式裝置,通過(guò)串行接口將數(shù)據(jù)傳送到PSoC或接收PSoC的數(shù)據(jù)。在發(fā)送端,PSoC將直接連接模擬量和數(shù)字量,串口接收的數(shù)據(jù)通過(guò)紅外線發(fā)射電路發(fā)送出去。在接收端,一體化接收頭輸出的信號(hào)送到PSoC,PSoC接收到一幀完整的信息后,處理后通過(guò)串行接口送到主機(jī),也可以直接輸出模擬量和數(shù)字量,并在LCD顯示出來(lái)[2]。

2 紅外線通信測(cè)控系統(tǒng)固件元件原理圖設(shè)計(jì)
    紅外線通信測(cè)控系統(tǒng)發(fā)送和接收端電路都使用了多個(gè)固件元件,受篇幅限制,結(jié)合發(fā)射和接收電路的原理敘述,只對(duì)與發(fā)射和接收密切相關(guān)的幾個(gè)元件做詳細(xì)介紹,了解和掌握PSoC元件的屬性設(shè)計(jì)及使用方法。
2.1 紅外線通信測(cè)控系統(tǒng)發(fā)射電路
    紅外線通信測(cè)控系統(tǒng)的發(fā)送端固件元件原理圖如圖2所示。外部的傳感模擬信號(hào)由引腳Pin_4輸入,經(jīng)程控增益放大器PGA放大后,送入模數(shù)轉(zhuǎn)換器ADC轉(zhuǎn)換成數(shù)字量,轉(zhuǎn)換結(jié)束產(chǎn)生isr_2中斷,在中斷子程序中將結(jié)果讀入ARM處理器。外部連接的開(kāi)關(guān)量通過(guò)引腳Pin_2和 Pin_3接入狀態(tài)寄存器Status_Reg,外部主機(jī)的控制數(shù)據(jù)經(jīng)串行接口UART被ARM處理器接收。將上述數(shù)據(jù)組裝成發(fā)送的4 B 32 bit幀信息,第1字節(jié)高4位是設(shè)備碼,低4位是命令碼,第2字節(jié)是發(fā)送的開(kāi)關(guān)量,第3和4字節(jié)是16 bit模擬量。紅外線通信測(cè)控系統(tǒng)發(fā)送端涉及的元件有多個(gè),篇幅所限,只介紹與通信相關(guān)的幾個(gè)元件。


    首先介紹脈沖寬度調(diào)制元件PWM[3],要使用的元件必須進(jìn)行屬性配置,PWM的輸入時(shí)鐘由時(shí)鐘元件Clock_1提供,頻率設(shè)置為1 MHz。PWM的屬性配置如圖3所示。由通用數(shù)字塊UDB實(shí)現(xiàn)PWM元件,分辨率為16 bit,因?yàn)榧t外線通信傳送的是頻率為38 kHz的調(diào)制脈沖波,所以PWM的周期為26 μs,為了使輸出波形占空比為1:1,PWM的比較值設(shè)置為13 μs,比較類(lèi)型設(shè)置為L(zhǎng)ess。當(dāng)然,在實(shí)際使用中可以將占空比調(diào)整為1:3、1:4等以達(dá)到增加發(fā)射距離和省電的目的。這樣,PWM元件啟動(dòng)后,就能在PWM端輸出連續(xù)的方波。定時(shí)器Timer的屬性配置如圖4所示,模塊由PSoC內(nèi)部的UDB實(shí)現(xiàn),分辨率為24 bit,因?yàn)榧t外線通信的數(shù)據(jù)0由560 μs高電平和560 μs低電平組成,數(shù)據(jù)1由560 μs高電平和1 680 μs低電平組成,所以設(shè)置定時(shí)器周期為560 μs,并且在定時(shí)器終端計(jì)數(shù)TC時(shí)產(chǎn)生中斷。

      進(jìn)行紅外線通信的數(shù)據(jù)發(fā)送,首先發(fā)送啟動(dòng)碼,啟動(dòng)碼由9 ms的高電平和4.5 ms的低電平組成,接著發(fā)送由0或1組成的32 bit數(shù)據(jù)碼。PWM和Timer啟動(dòng)后,當(dāng)有數(shù)據(jù)傳輸時(shí),將Control_Reg_2和Control_Reg_1寄存器置1,Pin_1端輸出38 kHz方波。當(dāng)Timer產(chǎn)生16次isr_1中斷(9 ms時(shí)間到),將Control_
Reg_1置0,Pin_1端無(wú)脈沖輸出,當(dāng)Timer產(chǎn)生8次isr_1中斷(4.5 ms時(shí)間到),啟動(dòng)碼發(fā)送完畢。接著發(fā)送32 bit數(shù)據(jù),先發(fā)送560μs的高電平,將Control_Reg_1置1,Pin_1端輸出38 kHz方波。當(dāng)Timer產(chǎn)生1次isr_1中斷(560 μs時(shí)間到),將Control_Reg_1置0,Pin_1端無(wú)脈沖輸出,直到Timer產(chǎn)生1次(如果數(shù)據(jù)是0)或3次(如果數(shù)據(jù)是1)isr_1中斷,直至將32 bit數(shù)據(jù)發(fā)送完畢[4-5]。
2.2 紅外線通信測(cè)控系統(tǒng)接收電路
    紅外線通信測(cè)控系統(tǒng)的接收端固件元件原理圖如圖5所示。將寄存器Control_Reg_1置1,紅外線接收頭輸出的信號(hào)通過(guò)Pin_1引腳接到定時(shí)器Timer的捕獲端capture,在Timer的屬性配置中,下降沿捕獲,捕獲產(chǎn)生中斷,設(shè)置分辨率為32 bit,周期為4 294.967 s。當(dāng)捕獲發(fā)生后,將前次與本次捕獲值相減,如果接近13.5 ms,就找到了本次數(shù)據(jù)傳輸?shù)膯?dòng)碼,繼而接收32 bit數(shù)據(jù)碼。如果兩次捕獲值的差接近1.12 ms,接收的這位是0,如果兩次捕獲值的差接近2.24 ms,接收的這位就是1。接收到32 bit數(shù)據(jù)在LCD顯示出來(lái),根據(jù)第1字節(jié)低4位功能碼,確定是進(jìn)行本地控制還是經(jīng)過(guò)串行接口UART傳輸給上位機(jī)。如果是本地控制,則將接收的第2字節(jié)輸出到控制寄存器Control_Reg_2,第3字節(jié)輸出到數(shù)模轉(zhuǎn)換器VDAC8_1[6]。

 

 


3 紅外線通信測(cè)控系統(tǒng)應(yīng)用程序設(shè)計(jì)
    在Creator開(kāi)發(fā)環(huán)境支持下,編譯器自動(dòng)生成了固件元件的C語(yǔ)言源代碼。但是,中斷子程序和main子程序僅提供了程序框架,子程序內(nèi)容需要開(kāi)發(fā)者根據(jù)固件元件原理圖所要完成的任務(wù)來(lái)編寫(xiě)。在工作空間瀏覽區(qū)找到元件的源程序,打開(kāi)后在編輯區(qū)找到中斷子程序框架,在里面嵌入應(yīng)用的源代碼即可。在main主函數(shù)中需要對(duì)使用的元件進(jìn)行初始化和啟動(dòng)(有的元件不需要),根據(jù)應(yīng)用程序流程調(diào)用元件的子程序和函數(shù)。紅外線通信測(cè)控系統(tǒng)的發(fā)送與接收主程序流程圖如圖6和圖7所示。


    利用PSoC強(qiáng)大的圖形化集成開(kāi)發(fā)環(huán)境Creator提供的固件元件實(shí)現(xiàn)紅外線通信測(cè)控系統(tǒng),通過(guò)簡(jiǎn)單的軟件設(shè)計(jì)實(shí)現(xiàn)硬件電路是一種值得重視和推廣的嵌入式系統(tǒng)開(kāi)發(fā)方法。該設(shè)計(jì)能可靠地將發(fā)送端數(shù)據(jù)送到接收端,實(shí)現(xiàn)控制功能或與其他設(shè)備的通信。
參考文獻(xiàn)
[1] 葉朝輝,華成英.可編程片上系統(tǒng)(PSoC)原理及實(shí)訓(xùn)[M].北京:清華大學(xué)出版社,2008.
[2] 余成波,謝東坡.網(wǎng)絡(luò)化測(cè)控技術(shù)與實(shí)現(xiàn)[M].北京:高等教育出版社,2009.
[3] Cypress MicroSystems,Inc.CY8C55FamilyDatasheet[EB/OL].(2011-01-05)[2011-04-02].http://www.cypress.com/?rID=37581.
[4] 錢(qián)敏,曹云鵬,章敏,等.基于FPGA/HDL的紅外遙控接收信號(hào)解碼器設(shè)計(jì)[J].通信技術(shù),2009,42(8):219-224.
[5] 張仁儉.基于89C2051單片機(jī)的紅外遙控裝置及應(yīng)用[J].航天制造技術(shù),2005(3):21-23.
[6] 韓喜春,高旭東,張春艷.基于PSoC的通用計(jì)數(shù)器設(shè)計(jì)[J].黑龍江工程學(xué)院學(xué)報(bào),2011,25(3):48-52.

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