《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于PSoC的智能車窗控制系統(tǒng)設(shè)計(jì)
基于PSoC的智能車窗控制系統(tǒng)設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2012年第7期
庫(kù)流亨1,趙麗敏2
1.華北計(jì)算機(jī)系統(tǒng)工程研究所研究生院,北京100083; 2.德州學(xué)院 計(jì)算機(jī)系,山東 德州253300
摘要: 基于PSoC及Cyfi無線通信技術(shù),設(shè)計(jì)了一種智能車窗控制系統(tǒng)方案,具有無線控制車窗升降、車窗防夾手等功能。實(shí)驗(yàn)結(jié)果表明,該方案具有設(shè)計(jì)簡(jiǎn)單靈活、操作方便、功耗低、抗干擾等特點(diǎn),可作為一種無線智能控制方案應(yīng)用于汽車電子領(lǐng)域。
中圖分類號(hào): TP2
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2012)07-0044-04
Design of intelligent car window control system based on PSoC
Ku Liuheng1,Zhao Limin2
1.Graduate School, National Computer System Engineering Research Institute of China, Beijing 100083,China; 2.Department of Computer Science, Dezhou University, Dezhou 253300,China
Abstract: An intelligent car window control system is designed based on PSoC and Cyfi wireless communications technology in the paper, which support wireless control window lift, window anti-trap hands and other features. The experimental results show that the scheme has a simple design flexible, convenient operation, low power consumption and anti-interference characteristics, which can be used as a wireless intelligent control scheme applied to the field of automotive electronics.
Key words : PSoC;CyFi;intelligent car window control system

    在汽車日益普及的今天,人們對(duì)汽車的安全性要求越來越高,防夾手電動(dòng)車窗應(yīng)運(yùn)而生。目前防夾手電動(dòng)車窗的設(shè)計(jì)方案較多,但大多都存在設(shè)計(jì)結(jié)構(gòu)復(fù)雜、開發(fā)周期長(zhǎng)、成本較高等問題,而且這些方案都需要借助汽車內(nèi)部各種控制線路傳遞信息,增加了汽車內(nèi)部總線布局的復(fù)雜性。

    針對(duì)上述問題,本文設(shè)計(jì)了一種基于PSoCCyFi無線通信技術(shù)的智能車窗控制系統(tǒng)。該系統(tǒng)在電動(dòng)車窗關(guān)閉時(shí)支持智能防夾手功能,同時(shí)電動(dòng)車窗的升降控制采用CyFi無線網(wǎng)絡(luò)進(jìn)行通信,取代了傳統(tǒng)的有線線路控制方式。
1 系統(tǒng)結(jié)構(gòu)及工作原理
1.1 系統(tǒng)總體結(jié)構(gòu)

    本文設(shè)計(jì)的智能車窗控制系統(tǒng)主要由無線控制器、通信轉(zhuǎn)發(fā)器以及車窗控制器組成。系統(tǒng)總體結(jié)構(gòu)如圖1所示。

    系統(tǒng)中的無線控制器用于發(fā)送電動(dòng)車窗的升降控制指令,通信轉(zhuǎn)發(fā)器負(fù)責(zé)CyFi無線網(wǎng)絡(luò)的通信數(shù)據(jù)轉(zhuǎn)發(fā),車窗控制器負(fù)責(zé)接收遙控指令并根據(jù)指令控制車窗升降,同時(shí)在關(guān)閉車窗時(shí)支持防夾手功能。
1.2 系統(tǒng)工作原理
    無線控制車窗升降的原理是:無線控制器根據(jù)設(shè)定的自身ID號(hào)以及用戶指定的遙控操作,組裝遙控指令,并通過CyFi無線網(wǎng)絡(luò)將指令發(fā)送給通信轉(zhuǎn)發(fā)器。當(dāng)通信轉(zhuǎn)發(fā)器收到遙控指令后,檢查指令的來源和目標(biāo)的合法性。如果指令合法,則將指令轉(zhuǎn)發(fā)給車窗控制器,車窗控制器收到轉(zhuǎn)發(fā)的遙控指令后,執(zhí)行該指令直至完成操作。
    電動(dòng)車窗中的玻璃升降器是一種直流電動(dòng)機(jī),用于帶動(dòng)車窗玻璃升降。車窗玻璃在上升期間遇到障礙物時(shí),通過玻璃升降器的電流會(huì)陡然增大,通過采樣玻璃升降器的電流,就能夠監(jiān)測(cè)車窗玻璃升降過程中所遇到的阻力情況[1]。本系統(tǒng)的智能防夾手功能就是依據(jù)此原理而設(shè)計(jì)的。系統(tǒng)中的車窗控制器內(nèi)部設(shè)計(jì)了一個(gè)障礙物探測(cè)模塊,在車窗玻璃上升期間,該模塊通過霍爾元件對(duì)玻璃升降器電機(jī)的電流進(jìn)行實(shí)時(shí)測(cè)量。當(dāng)車窗玻璃在上升期間遇到障礙物時(shí),障礙物探測(cè)模塊檢測(cè)到電流的突變情況,由此可判斷出當(dāng)前車窗玻璃是否遇到障礙物,并將探測(cè)結(jié)果信號(hào)傳遞給車窗控制器核心控制板,核心控制板依據(jù)判斷結(jié)果執(zhí)行相應(yīng)的保護(hù)措施。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 硬件平臺(tái)

    整個(gè)系統(tǒng)設(shè)計(jì)所采用的硬件平臺(tái)包括Cypress公司推出的CY3271入門開發(fā)套件和CY3215-DK開發(fā)板。
    CY3271是Cypress公司針對(duì)入門開發(fā)者推出的一款帶CyFi的低成本USB接口套件,包括PSoC集成開發(fā)環(huán)境PSoC Designer、用于數(shù)據(jù)采集的感應(yīng)控制軟件SCD、帶RF功能的PC橋FTPC、多功能板FTMF、支持長(zhǎng)距離無線應(yīng)用并帶功率放大器的RF擴(kuò)展板FTRF以及2個(gè)電池板[2]。
    在本系統(tǒng)中,使用PC橋FTPC作為CyFi無線網(wǎng)絡(luò)的通信轉(zhuǎn)發(fā)器;以RF擴(kuò)展板FTRF作為CyFi網(wǎng)絡(luò)的數(shù)據(jù)收發(fā)節(jié)點(diǎn)設(shè)備;多功能板FTMF中帶有CapSense觸摸傳感器,可作為無線控制器的控制鍵盤使用。
    CY3215-DK開發(fā)板是一款用于PSoC開發(fā)的通用開發(fā)板,可自由選擇PSoC芯片以及外圍元件。
2.2 車窗控制器硬件結(jié)構(gòu)
    車窗控制器以CY8C29466芯片為核心處理器,外接一個(gè)FTRF作為CyFi無線通信模塊,總體結(jié)構(gòu)如圖2所示。障礙物探測(cè)模塊負(fù)責(zé)車窗玻璃在上升過程中判定車窗玻璃是否遇到障礙物。車窗控制電路用于轉(zhuǎn)換車窗控制信號(hào)。

2.3 障礙物探測(cè)模塊設(shè)計(jì)
    障礙物探測(cè)模塊是通過檢測(cè)車窗升降器電機(jī)電流的方式來判斷車窗關(guān)閉過程中是否遇到障礙物。利用PSoC檢測(cè)電機(jī)電流,只需要一個(gè)PSoC芯片CY8C27443,外加一個(gè)霍爾元件、一個(gè)感應(yīng)磁環(huán)即可。其原理框圖如圖3所示。

    CY8C27443芯片的外部引腳連接圖如圖4所示,圖中,U1為砷化鎵霍爾元件TSH119,U2為SPI輸出模塊,提供系統(tǒng)在電流檢測(cè)時(shí)的數(shù)據(jù)顯示功能,J1、J2與上拉電阻R2、R3構(gòu)成I2C數(shù)據(jù)通信接口,向外輸出探測(cè)結(jié)果信號(hào)。
3 軟件設(shè)計(jì)
3.1 無線控制器

 


    無線控制器由CY3271套件中的一個(gè)RF擴(kuò)展板(FTRF)、一個(gè)多功能擴(kuò)展板(FTMF)外加一個(gè)紐扣電池組成。其中,F(xiàn)TMF板直接采用CY3271套件中提供的MF_CS_SLIDE示例程序,本系統(tǒng)主要用到其中的CapSense觸摸傳感器作為車窗控制鍵盤。FTRF板采用RF_I2C_BRIDGE示例程序,這里需要將sendNewTxMsg()函數(shù)中消息類型TX_PACKET_TYPE修改為CYFISNP_API_TYPE_CONF_BCDR,然后在調(diào)用函數(shù)CYFISNP_BindStart時(shí)指定參數(shù)為DEV_ID_TX,以標(biāo)示數(shù)據(jù)包來源,便于中心Hub進(jìn)行轉(zhuǎn)發(fā)。其部分代碼如下:
    #define TX_PACKET_LENGTH  (8+1)//包長(zhǎng)度
    #define TX_PACKET_TYPE       CYFISNP_API_TYPE_
                          CONF_BCDR//包類型
    static void sendNewTxMsg(void)
    {
        if (CYFISNP_eProtState == CYFISNP_DATA_MODE
//數(shù)據(jù)模式
        && CYFISNP_TxDataPend() == FALSE)    {
//當(dāng)前沒有數(shù)據(jù)發(fā)送
        GetI2CData();//從I2C端口獲取數(shù)據(jù)
        loadTxData();//將讀取到的數(shù)據(jù)裝載到發(fā)送緩沖區(qū)
        txApiPkt.length=TX_PACKET_LENGTH;
//指定數(shù)據(jù)包長(zhǎng)度
        txApiPkt.type=TX_PACKET_TYPE;
//指定數(shù)據(jù)包類型
        CYFISNP_TxDataPut(&txApiPkt);
//通過CyFi發(fā)送數(shù)據(jù)
        LED_GRN_ON;//指示燈提示
        }
    }
3.2 通信轉(zhuǎn)發(fā)器
    通信轉(zhuǎn)發(fā)器由帶RF功能的PC橋FTPC實(shí)現(xiàn),直接采用RF_HUB示例程序。該示例程序已經(jīng)具有與各個(gè)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互的功能,但不能進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),因此需要對(duì)RF_HUB程序進(jìn)行一些修改。首先,需要將CYFISNP用戶模塊中的DeviceIDassignment屬性設(shè)置為Preas-signedDeviceID,表示自定義通信節(jié)點(diǎn)的ID;重新編譯RF_HUB工程之后,修改ServeSNPPackets()函數(shù)中關(guān)于CYFISNP_API_TYPE_SYNC類型消息的處理過程,增加對(duì)數(shù)據(jù)包節(jié)點(diǎn)ID的判斷,只有當(dāng)數(shù)據(jù)包是由遙控節(jié)點(diǎn)發(fā)送時(shí)才進(jìn)行轉(zhuǎn)發(fā)[3]。轉(zhuǎn)發(fā)部分代碼如下:
    case CYFISNP_API_TYPE_SYNC:
        ……
        if (pApiPkt->devId == DEV_ID_TX) {
//判斷數(shù)據(jù)包來源
        newPacket.length = pApiPkt->length;
//復(fù)制成一個(gè)新的數(shù)據(jù)包用于轉(zhuǎn)發(fā)
        ……
        newPacket.payload[length-1] = pApiPkt->devId;
//確保數(shù)據(jù)包長(zhǎng)度沒有超出限制并且設(shè)備合法
        if(newPacket.length <= CYFISNP_BCD_PAYLOAD_
MAX&& (CYFISNP_EEP_DEV_REC_ADR+
newPacket.devId)->devId != 0){
        if (CYFISNP_TxDataPend(newPacket.devId) ==
          CYFISNP_TX_DATA_EMPTY) {//發(fā)送緩沖區(qū)為空
          CYFISNP_TxDataPut(&newPacket);//轉(zhuǎn)發(fā)數(shù)據(jù)包
        }
        }
    }
3.3 車窗控制器
    車窗控制器在完成啟動(dòng)初始化之后,通過CyFi無線網(wǎng)絡(luò)接收數(shù)據(jù)。如果收到數(shù)據(jù)并且確認(rèn)數(shù)據(jù)包是發(fā)送給自己,則進(jìn)行指令解析,并執(zhí)行相應(yīng)動(dòng)作;否則丟棄數(shù)據(jù)包。得到指令之后,根據(jù)指令持續(xù)時(shí)間判斷出該指令是自動(dòng)執(zhí)行還是手動(dòng)執(zhí)行。在執(zhí)行自動(dòng)關(guān)閉車窗指令時(shí),車窗控制器會(huì)接收由障礙物探測(cè)模塊發(fā)來的信號(hào),得到障礙物信號(hào)后,立即停止電機(jī)并反轉(zhuǎn)一段距離。車窗控制器的程序流程圖如圖5所示。車窗控制器部分代碼如下:
    M8C_EnableGInt;            //開中斷
    //初始化I2C
    I2C_CFG &= 0xFC;
    I2CHW_Start();
    I2CHW_EnableSlave();//核心控制板為I2C Slave端
    I2CHW_EnableInt();//打開I2C中斷
    I2CHW_InitRamRead(WriteBuffer,8);
    I2CHW_InitWrite(WriteBuffer, 8);
    &hellip; &hellip;
    while (1) {
        if(I2CHW_bReadI2CStatus()&I2CHW_WR_COMPLETE) {
        I2CHW_ClrWrStatus();//清除I2C寫完成標(biāo)志
        //重新初始化I2C寫緩沖區(qū)
        I2CHW_InitWrite(WriteBuffer,I2C_PAYLOAD_MAX);
        }
        if(I2CHW_bReadI2CStatus()&I2CHW_RD_COMPLETE) {
        I2CHW_ClrRdStatus();//清除I2C讀完成標(biāo)志
             // 重新初始化I2C讀緩沖區(qū)
        I2CHW_InitRamRead(WriteBuffer, I2C_PAYLOAD_
MAX);
        }
        //切換控制模式(手動(dòng)控制或者自動(dòng)控制)
        if(Command_Mode == 0 && WriteBuffer[0] != 0) {
         Command_Mode = 1;//自動(dòng)控制模式
        }
        CheckCommand();//根據(jù)控制模式和命令內(nèi)容,
//執(zhí)行命令
        ShowCommand();//將當(dāng)前控制模式及
//執(zhí)行狀態(tài)顯示在LCD屏
    }
    車窗控制器可實(shí)現(xiàn)以下車窗控制模式:
    (1)自動(dòng)升降模式。當(dāng)較短時(shí)間(<600 ms)按下無線控制器的控制鍵時(shí),指令持續(xù)時(shí)間會(huì)比較短,車窗自動(dòng)升降直至完成。
    (2)手動(dòng)升降模式。當(dāng)較長(zhǎng)時(shí)間(>600 ms)按下無線控制器的控制鍵時(shí),指令持續(xù)時(shí)間會(huì)比較長(zhǎng),車窗控制器進(jìn)入手動(dòng)升降模式,釋放控制鍵則車窗升降立即停止。
3.4 障礙物探測(cè)算法
    在車窗自動(dòng)關(guān)閉的過程中,障礙物的探測(cè)需要區(qū)分兩種情況:一種情況是車窗在關(guān)閉的過程中遇到障礙物;另一種是車窗玻璃已經(jīng)上升到頂端。這兩種情況都會(huì)導(dǎo)致玻璃升降器電機(jī)的電流增大,因此僅依據(jù)電機(jī)電流的增幅值是不能進(jìn)行判定的。但是,這兩種情況下電機(jī)電流變化的速率不一樣,當(dāng)車窗在上升過程中遇到障礙物時(shí),電機(jī)電流迅速增大到一定值,并呈現(xiàn)不穩(wěn)定狀態(tài);而當(dāng)車窗玻璃上升到頂端時(shí),電機(jī)電流急劇增大,并保持峰值電流[1]。

    根據(jù)上述兩種情況的不同特點(diǎn),設(shè)定最大關(guān)斷電流為IMAX,通過霍爾元件測(cè)量一段時(shí)間內(nèi)的電流平均值為I。當(dāng)I>IMAX時(shí),可判定為上述兩種情況之一。計(jì)算此時(shí)的電流變化率,當(dāng)變化率出現(xiàn)較大波動(dòng)時(shí),判定為遇到障礙物并將結(jié)果信號(hào)傳遞給車窗控制器。
    通過調(diào)整最大關(guān)斷電流IMAX,可設(shè)定不同的防夾力閾值。經(jīng)過反復(fù)實(shí)驗(yàn),調(diào)整針對(duì)電流變化率的判定,可提高防夾手功能的靈敏度。
    利用PSoC芯片設(shè)計(jì)智能車窗系統(tǒng),硬件電路設(shè)計(jì)簡(jiǎn)單,軟件開發(fā)周期短,避免了復(fù)雜的硬件模塊設(shè)計(jì)過程;PSoC所具有的可重構(gòu)性使得在增加系統(tǒng)功能或者升級(jí)系統(tǒng)特性時(shí),只需要對(duì)PSoC芯片進(jìn)行重新配置編譯,無需增加額外的芯片或內(nèi)部資源,從而有效提高了系統(tǒng)的性價(jià)比。實(shí)驗(yàn)結(jié)果表明,使用PSoC作為車窗電機(jī)的控制器具有良好的穩(wěn)定性和反應(yīng)速度。但是系統(tǒng)對(duì)于障礙物探測(cè)的靈敏度還有待進(jìn)一步提高。
    將PSoC和CyFi無線解決方案應(yīng)用于汽車控制領(lǐng)域,是對(duì)傳統(tǒng)汽車電子的數(shù)據(jù)傳感和有線控制進(jìn)行的一次開創(chuàng)性的改進(jìn)嘗試,具有重要的參考價(jià)值。
參考文獻(xiàn)
[1] 孫能勇,王冬雪,馬建輝,等.基于PIC18F2580的智能防夾手電動(dòng)車窗設(shè)計(jì)[J].山東科學(xué),2010,23(3):74-77.
[2] 俊杰.Cypress推出基于PSoC技術(shù)的CyFi低功耗射頻解決方案[J].電子設(shè)計(jì)應(yīng)用,2008(12):115.
[3] 葉青林,馬忠梅.CyFi無線傳感器網(wǎng)絡(luò)組建與通信設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(9):78-81.

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