《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于PSoC的智能車窗控制系統(tǒng)設計
基于PSoC的智能車窗控制系統(tǒng)設計
來源:電子技術應用2012年第7期
庫流亨1,趙麗敏2
1.華北計算機系統(tǒng)工程研究所研究生院,北京100083; 2.德州學院 計算機系,山東 德州253300
摘要: 基于PSoC及Cyfi無線通信技術,設計了一種智能車窗控制系統(tǒ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

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

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

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

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

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

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

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

 


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

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。