《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應用 > 基于PSoC的智能車窗控制系統(tǒng)設(shè)計
基于PSoC的智能車窗控制系統(tǒng)設(shè)計
來源:電子技術(shù)應用2012年第7期
庫流亨1,趙麗敏2
1.華北計算機系統(tǒng)工程研究所研究生院,北京100083; 2.德州學院 計算機系,山東 德州253300
摘要: 基于PSoC及Cyfi無線通信技術(shù),設(shè)計了一種智能車窗控制系統(tǒng)方案,具有無線控制車窗升降、車窗防夾手等功能。實驗結(jié)果表明,該方案具有設(shè)計簡單靈活、操作方便、功耗低、抗干擾等特點,可作為一種無線智能控制方案應用于汽車電子領(lǐng)域。
中圖分類號: TP2
文獻標識碼: B
文章編號: 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

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

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

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

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

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

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

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

 


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

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

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