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