基于WinCE與LPC935單片機CAN通信設(shè)計
隨著信息技術(shù)的不斷發(fā)展,嵌入式WinCE在工業(yè)控制領(lǐng)域中的應(yīng)用越來越廣泛。主要作為上位機的操作系統(tǒng)。LPC935單片機作為一款工業(yè)級的單片機芯片,廣泛應(yīng)用于各種工控設(shè)備。在許多復(fù)雜的應(yīng)用場合,一個LPC935單片機是不可能滿足需要的,需要多片LPC935單片機協(xié)同工作。此時,怎樣實現(xiàn)多片LPC935單片機的通信就成為了設(shè)計的關(guān)鍵。以基于嵌入式WinCE設(shè)備為核心,代替?zhèn)鹘y(tǒng)的PC機,搭建CAN通信系統(tǒng)。結(jié)合嵌入式、單片機、網(wǎng)絡(luò)通信技術(shù)的優(yōu)點,將各個獨立系統(tǒng)復(fù)雜的通信協(xié)議、數(shù)據(jù)格式進行統(tǒng)一的轉(zhuǎn)化,實現(xiàn)系統(tǒng)之間的相互通信。將嵌入式WinCE與單片機結(jié)合起來將具有重要的實用價值和廣闊的應(yīng)用前景。
1.硬件平臺
1)嵌入式WinCE采用周立功的TIPC-700作為硬件平臺,主要的硬件資源有S3C2440A處理器,1路帶隔離的CAN-bus接口;1路10/100M以太網(wǎng)接口;2個RS-232C串口等。根據(jù)核心硬件的要求,定制了所需的WinCE系統(tǒng)內(nèi)核。在Visual Studio2005集成開發(fā)環(huán)境中編寫應(yīng)用程序。
2)LPC935單片機是一款單片封裝的微控制器,使用低成本的封裝形式。它采用了高性能的處理器的處理結(jié)構(gòu),指令執(zhí)行時間只需要2到4個時鐘周期。6倍于標準80C51器件。它具有集成度高、外圍設(shè)備豐富,2個4路輸入的8位A/D轉(zhuǎn)換器/DAC輸出、2個模擬比較器、2個16位定時/.計數(shù)器和一個23位系統(tǒng)定時器、增強型UART和SPI通信端口。LPC935集成了許多系統(tǒng)級的功能,大大減少了元件的數(shù)目與電路板面積并降低系統(tǒng)的成本。所以在很多領(lǐng)域得到了廣泛的應(yīng)用。
3)通過USB建立TIPC-700與PC機的ActiveSync連接,嵌入式WinCE與LPC935通過帶隔離的CAN-bus接口進行通信。
4)每塊分板控制4個比色池,每個比色池上有3個檢測通道,每塊分板可以進行12通道檢測,但是每個比色池一次只用使用一個通道進行檢測,因此每塊分板每次可以同時進行4通道檢測,4塊分板可以同時進行16通道檢測,從而達到了多通道檢測的目的,后面的通信協(xié)議正是基于此而設(shè)計的。
2.嵌入式WinCE平臺定制
WinCE是一個32位、多線程、多任務(wù)的操作系統(tǒng),采用了獨立于通常的程序設(shè)計語言并且和Windows兼容的API的方式。WinCE有良好的通信能力、相當(dāng)出色的圖形用戶界面。WinCE操作系統(tǒng)分為硬件層、OEM適配層、操作系統(tǒng)層、應(yīng)用支持庫、應(yīng)用開發(fā)層、應(yīng)用集成層。各層之間只能單向依賴或單向調(diào)用。從而使功能模塊之間的調(diào)用關(guān)系更加清晰。為了使系統(tǒng)具有更好的可擴展性和更清晰的結(jié)構(gòu),WinCE系統(tǒng)往往需要定制。
WinCE提供了一個工具PB(PlatformBuilder),是WinCE的主要集成開發(fā)環(huán)境,通過這個工具可以方便地根據(jù)不同的硬件,定制、裁剪出符合不同設(shè)計要求的WinCE操作系統(tǒng)。完整的WinCE操作系統(tǒng)包括以下內(nèi)容:Bootloader、CPU初始化代碼、驅(qū)動程序(鍵盤、鼠標、聲卡、顯卡、IDE、COM、USB)、用戶界面接口、完成特定功能的應(yīng)用程序。
3.底板CAN設(shè)計
底板采用的是主控芯片是LPC935,是一類自身并不能帶有在片CAN的微控制器。但是它帶有SPI接口,設(shè)計中就是用SPI接口加獨立的CAN控制器(MCP2515)來實現(xiàn)CAN的功能。MCP2515作為CAN控制器,是一種獨立的控制器,主要用于一般工業(yè)環(huán)境中的局域網(wǎng)絡(luò)控制,完全支持CAN總線V2.0A/B技術(shù)規(guī)范。CAN收發(fā)器采用了TJA1050T,可以同時操作多個CAN網(wǎng)絡(luò),提供高達1Mb/s的傳輸速率。同時采用光電隔離提高系統(tǒng)的穩(wěn)定性。用以實現(xiàn)底板與嵌入式WinCE設(shè)備的通信。
4.CAN通信協(xié)議設(shè)計
為了讓嵌入式WinCE和多塊LPC935單片機進行通信,關(guān)鍵是要有一個好的通信協(xié)議。包括對數(shù)據(jù)的形式、通信方式、傳送速度、傳送步驟、檢錯方式以及控制字符定義等問題做出統(tǒng)一規(guī)定[5].由硬件平臺的設(shè)計可以知道,每塊分板控制著4個比色池,每個比色池可以設(shè)定3個檢測通道,因此每塊分板可以控制12個檢測通道,并把它編號為1-12.但是每塊分板每次只能從每個比色池的3個通道中選著1個通道進行檢測,每次只能同時進行4通道的檢測。整個系統(tǒng)可以同時進行16通道的檢測。CAN通信報文傳輸?shù)膸袷接泻?1位標識符的標準幀和含有29位標識符的擴展幀。本設(shè)計采用了標準幀的格式進行CAN通信協(xié)議的設(shè)計。
1)主板下傳命令給分板時通信協(xié)議的設(shè)定
標識符的設(shè)置:把11位標識符的高四位固定為1010,隨后的2位為分板的編號(0-3),第7位設(shè)為0表示讀取AD,設(shè)為1表示設(shè)置比色池LED發(fā)光強度,低四位設(shè)成檢測通道(1-12),至此,11位標識符被設(shè)定好。
數(shù)據(jù)域的設(shè)置:當(dāng)?shù)?位設(shè)為0時,數(shù)據(jù)部分為一個字節(jié)(小于16),表示檢測項目,與標識符的低四位相同。分板在接收到時調(diào)整相應(yīng)到相應(yīng)的檢測狀態(tài)。當(dāng)?shù)?位設(shè)為1時,設(shè)置/校準發(fā)光管。標識符的低四位為檢測通道,數(shù)據(jù)部分為3個字節(jié)。
2)分板上傳數(shù)據(jù)/命令給主板時通信協(xié)議的設(shè)定
標識符的設(shè)置:11位中的高4為固定為1010,隨后的2位為分板的編號(0-3),第7為為0,低四位設(shè)成檢測通道(1-12)。
數(shù)據(jù)域的設(shè)置:共8個字節(jié)
分板上傳命令時標識符與上傳數(shù)據(jù)相同,數(shù)據(jù)部分為一個字節(jié),當(dāng)為“0x0b”表示按下了檢測按鍵,當(dāng)為“0x0A”表示對上次命令已經(jīng)處理完成。
波特率設(shè)定:設(shè)為50K.
濾波設(shè)置:主板只對標識符高4位濾波,值為1010.
分板只對標識符高6位濾波,值為1010XX,XX為分板編號0-3.
例如要對一號分板的第一比色池的1號通道的檢測項目進行檢測:如已經(jīng)校準,將標識符設(shè)置為10100000001,其后跟上相應(yīng)設(shè)置的數(shù)據(jù)域,即可以對一號分板的第一比色池的1號通道的檢測項目進行檢測。如未校準,將標識符設(shè)置為10100010001,加上相應(yīng)設(shè)置的數(shù)據(jù)域進行校準,校準候按照前面的步驟進行檢測。同樣1號通道上傳數(shù)據(jù)/命令可以根據(jù)上面寫好的通信協(xié)議進行操作。
5.結(jié)論
CAN通信最早應(yīng)用于汽車領(lǐng)域,隨著科技的發(fā)展,目前CAN通信在計算機控制系統(tǒng)中已經(jīng)得到了廣泛的應(yīng)用,本文通過嵌入式WinCE與多塊LPC935單片機底板CAN通信研究開發(fā),綜合了嵌入式、單片機及網(wǎng)絡(luò)通信技術(shù)實現(xiàn)了多路CAN通信,達到了最初的設(shè)計目的。本文設(shè)計的通信協(xié)議經(jīng)實踐證明穩(wěn)定可靠,保證了底板與WinCE控制板之間信息傳輸?shù)膶崟r性與準確性。提高了數(shù)據(jù)的準確率,減少了丟包率。本文所采用的技術(shù)在近距離控制,遠程控制與工業(yè)控制領(lǐng)域具有重要的實用價值和廣泛的應(yīng)用前景。