汪 靜,胡旭東,金玉珍,何偉強(qiáng)
(浙江理工大學(xué) 浙江省現(xiàn)代紡織裝備技術(shù)重點(diǎn)實(shí)驗(yàn)室,杭州 310018)
噴氣織機(jī)控制器CAN通信接口設(shè)計(jì)及實(shí)現(xiàn)
汪 靜,胡旭東,金玉珍,何偉強(qiáng)
(浙江理工大學(xué) 浙江省現(xiàn)代紡織裝備技術(shù)重點(diǎn)實(shí)驗(yàn)室,杭州 310018)
提出了基于Win CE的噴氣織機(jī)控制器CAN通信接口設(shè)計(jì)及實(shí)現(xiàn)的方法。設(shè)計(jì)了CAN通信接口的硬件電路,介紹了接口驅(qū)動(dòng)程序的工作機(jī)制及開發(fā)環(huán)境,詳細(xì)闡述了Win CE流接口驅(qū)動(dòng)程序的開發(fā)過程,并通過編寫CAN通信應(yīng)用程序測(cè)試通信。測(cè)試結(jié)果表明,CAN通信接口在Win CE下通信正常且具有較強(qiáng)的實(shí)時(shí)性。
Windows CE;CAN總線;流接口驅(qū)動(dòng);噴氣織機(jī)控制器
噴氣織機(jī)控制器主要由人機(jī)界面、主控制模塊及送經(jīng)/卷取模塊這三大部分組成,用戶在人機(jī)界面上設(shè)定織造工藝條件后傳送給織機(jī)下位機(jī),下位機(jī)的主控制板及送經(jīng)/卷取板根據(jù)人機(jī)界面設(shè)定的參數(shù)執(zhí)行相應(yīng)動(dòng)作并把當(dāng)前織機(jī)運(yùn)行情況傳回人機(jī)界面實(shí)時(shí)顯示??棛C(jī)控制器的正常通信是保證織機(jī)正常運(yùn)行的先決條件。目前,國外高檔噴氣織機(jī)的機(jī)電一體化控制普遍采用基于現(xiàn)場(chǎng)總線的通信方式實(shí)現(xiàn),如日本津田駒公司的ZAX-N噴氣織機(jī)、豐田公司的JAT710噴氣織機(jī)、比利時(shí)必佳樂公司OMNI plus 800噴氣織機(jī)的控制系統(tǒng)。
CAN總線技術(shù)自20世紀(jì)80年代末以來已逐漸發(fā)展形成一定影響,目前,CAN總線已形成國際標(biāo)準(zhǔn)。CAN總線適用于數(shù)據(jù)交換簡(jiǎn)短而頻繁的場(chǎng)合,它高性能、高可靠性的優(yōu)點(diǎn)特別適合工業(yè)設(shè)備的互連,是解決工業(yè)控制設(shè)備之間數(shù)據(jù)通信的有效方式。
基于CAN總線本身具有的優(yōu)勢(shì)能夠滿足噴氣織機(jī)控制系統(tǒng)的通信要求,本設(shè)計(jì)中噴氣織機(jī)控制器的各部分機(jī)構(gòu)通信采用CAN總線通信實(shí)現(xiàn)。Windows CE系統(tǒng)是微軟公司專門為移動(dòng)設(shè)備、嵌入式應(yīng)用等非PC領(lǐng)域而設(shè)計(jì)的一種32位嵌入式實(shí)時(shí)操作系統(tǒng),它具有很好的模塊性,良好的實(shí)時(shí)性及強(qiáng)大的通信能力,該操作系統(tǒng)在工業(yè)現(xiàn)場(chǎng)設(shè)備中也被廣泛應(yīng)用[1-2]。本研究以噴氣織機(jī)控制器的CAN通信實(shí)現(xiàn)為實(shí)例,具體給出Win CE下CAN通信接口的實(shí)現(xiàn),詳細(xì)介紹CAN接口硬件設(shè)計(jì)及Win CE下接口驅(qū)動(dòng)程序的開發(fā)實(shí)現(xiàn)流程。
在Windows CE中,驅(qū)動(dòng)程序是Windows CE內(nèi)核的一部分,所有驅(qū)動(dòng)皆為動(dòng)態(tài)鏈接庫,且在驅(qū)動(dòng)實(shí)現(xiàn)中可以調(diào)用所有標(biāo)準(zhǔn)的API函數(shù)。Win CE驅(qū)動(dòng)程序模型有本機(jī)驅(qū)動(dòng)程序和流接口驅(qū)動(dòng)程序兩種。本機(jī)驅(qū)動(dòng)程序通常與基于Win CE的平臺(tái)有著緊密的連接,總是在平臺(tái)啟動(dòng)時(shí)加載,如鍵盤、顯示器等都有專門用于Win CE的接口。流接口驅(qū)動(dòng)程序是為連接到基于Win CE平臺(tái)的外圍設(shè)備而設(shè)計(jì)的,典型的流式設(shè)備如串口、網(wǎng)卡,打印機(jī)等。
流接口驅(qū)動(dòng)程序是一般類型的設(shè)備驅(qū)動(dòng)程序,由設(shè)備管理器統(tǒng)一加載、管理和卸載,它有固定的入口點(diǎn)函數(shù),主要任務(wù)是通過流接口函數(shù)使得應(yīng)用程序通過Win CE的文件系統(tǒng)訪問這些驅(qū)動(dòng)程序,達(dá)到應(yīng)用程序訪問驅(qū)動(dòng)程序、操作硬件的目的。應(yīng)用程序使用文件API對(duì)設(shè)備進(jìn)行訪問的過程是:OS接受API調(diào)用FileSys.exe,F(xiàn)ileSys.exe發(fā)現(xiàn)是對(duì)設(shè)備進(jìn)行操作,就會(huì)把執(zhí)行交給device.exe,調(diào)用流接口與硬件交互[3]。流驅(qū)動(dòng)的體系結(jié)構(gòu)如圖1所示。
圖1 流式接口驅(qū)動(dòng)程序體系結(jié)構(gòu)Fig.1 Architecture of Stream Interface Driver
本次設(shè)計(jì)的基于Win CE的CAN通信接口應(yīng)用于噴氣織機(jī)控制器的各部分通信,主要是織機(jī)的人機(jī)交互界面與織機(jī)的主控板及送經(jīng)/卷取板這三部分機(jī)構(gòu)的通信實(shí)現(xiàn)。設(shè)計(jì)選用基于ARM9結(jié)構(gòu)EP9307為核心處理器,外接觸摸板及液晶屏用于系統(tǒng)的輸入及輸出顯示,由于EP9307微處理器不帶CAN總線控制器,所以在外部擴(kuò)展了獨(dú)立的CAN控制器。為提高系統(tǒng)的驅(qū)動(dòng)能力、增大通信距離,CAN收發(fā)器采用PCA82C250芯片作為其與物理總線間的接口,以實(shí)現(xiàn)物理層的轉(zhuǎn)換和傳輸,增加了對(duì)總線的差動(dòng)發(fā)送能力和對(duì)CAN控制器的差動(dòng)接收能力[4]。CAN控制器采用SJA1000芯片,SJA1000完全支持CAN 2.0A和CAN 2.0B協(xié)議;通信位速率最高可達(dá)1 Mbps;有擴(kuò)展的接收緩沖器64字節(jié),先進(jìn)先出(FIFO)。硬件結(jié)構(gòu)如圖2所示。
為提高系統(tǒng)的可靠性和抗干擾能力,主要從以下幾個(gè)方面考慮,在CAN收發(fā)器與控制器之間接入高速光耦TLP113以實(shí)現(xiàn)電氣隔離,TLP113可滿足在最高速率1 Mbps下的電氣響應(yīng),保護(hù)控制系統(tǒng)電路;采用隔離型DC/DC模塊為收發(fā)器電路供電,選擇B0505S型號(hào)定電壓輸入隔離非穩(wěn)壓?jiǎn)屋敵鲂虳C/DC模塊,可向收發(fā)器電路提供低于200 mA的電流,隔離電壓可高于1 000 VDC;由于CAN總線對(duì)收發(fā)器82C250發(fā)送數(shù)據(jù)輸入端(TXD)狀態(tài)的要求,在82C250的TXD端與高速光耦TLP113的輸出端5腳相連,同時(shí)接390 Ω上拉電阻以保證在總線空閑或出現(xiàn)異常情況時(shí)TXD端的狀態(tài)為高電平;在CAN總線末端必須連接2個(gè)120 Ω終端電阻以起到其對(duì)總線阻抗的匹配作用,加強(qiáng)總線數(shù)據(jù)通信的可靠性和抗干擾性。設(shè)計(jì)時(shí)還考慮其他抗干擾措施,如在82C250的CANH、CANL端與地之間并聯(lián)2個(gè)小電容以減小總線上的高頻干擾,在82C250與TLP113的電源端與地之間添加去耦合電容以降低干擾。具有光電隔離及電源隔離的CAN通信接口電路如圖3示。
圖2 硬件結(jié)構(gòu)框圖Fig.2 Hardware Structure Diagram
圖3 CAN通信接口電路Fig.3 Communication Interface Circuit ofCAN
Platform Builder(PB)是微軟公司提供的一個(gè)集成開發(fā)軟件,通過它可創(chuàng)建系統(tǒng)鏡像,包括核心文件系統(tǒng)、存儲(chǔ)的程序和文檔、系統(tǒng)配置文件等。本次CAN驅(qū)動(dòng)開發(fā)選擇PB作為開發(fā)工具,通過串口連接在超級(jí)終端輸出打印信息,進(jìn)行驅(qū)動(dòng)調(diào)試。由于驅(qū)動(dòng)開發(fā)需要多次的調(diào)試、修改,而在PB中每次修改驅(qū)動(dòng)程序后把它編譯進(jìn)系統(tǒng)鏡像再調(diào)試需要耗費(fèi)大量的時(shí)間。為簡(jiǎn)化開發(fā)過程,選擇在Win CE下動(dòng)態(tài)加載流驅(qū)動(dòng)的方法,即單獨(dú)編譯驅(qū)動(dòng),通過加載DLL文件的方式把驅(qū)動(dòng)加載到Win CE系統(tǒng)中結(jié)合硬件進(jìn)行調(diào)試,直到對(duì)驅(qū)動(dòng)程序進(jìn)行多次迭代調(diào)試,修改完成之后再將其封裝入Win CE系統(tǒng)映像。
CAN驅(qū)動(dòng)程序的開發(fā)過程主要可概括為編寫DLL做成Project再加入到操作系統(tǒng)。實(shí)現(xiàn)的步驟是先在PB中新建一個(gè)DLL項(xiàng)目,編寫一些輸入函數(shù),寄存器,外設(shè)的聲明,寫DLLENTRY函數(shù);編寫流接口函數(shù);編寫DLL的導(dǎo)出函數(shù)文件.DEF;為驅(qū)動(dòng)程序?qū)懭胱?cè)表項(xiàng),修改bib文件。
流接口驅(qū)動(dòng)程序必須實(shí)現(xiàn)一組標(biāo)準(zhǔn)的函數(shù)用來完成標(biāo)準(zhǔn)的輸入輸出管理和電源管理,而流驅(qū)動(dòng)開發(fā)的重點(diǎn)就在于這10個(gè)標(biāo)準(zhǔn)流接口函數(shù)的實(shí)現(xiàn)[5]。接口函數(shù)見表1,在此設(shè)備名前綴命名為“CAN”。
表1 流接口函數(shù)Tab.1 Function of Stream Interface
現(xiàn)主要對(duì)CAN_Init、CAN_Open和CAN_IOControl這3個(gè)函數(shù)進(jìn)行分析。
3.2.1 CAN_Init()函數(shù)
CAN_Init()函數(shù)的主要任務(wù)是分配內(nèi)存、綁定中斷,CAN_Init函數(shù)流程如圖4所示。
圖4 CAN_Init函數(shù)流程Fig.4 Function Flow of CAN_Init
在Windows CE中,對(duì)物理內(nèi)存的訪問是通過虛擬地址進(jìn)行的,VirtualAlloc()函數(shù)負(fù)責(zé)在虛擬內(nèi)存空間內(nèi)保留一段虛擬內(nèi)存,而VirtualCopy()函數(shù)負(fù)責(zé)把一段物理內(nèi)存和虛擬內(nèi)存綁定,這樣,最終實(shí)現(xiàn)通過虛擬地址進(jìn)行對(duì)物理內(nèi)存的訪問,地址映射的關(guān)鍵代碼如下:
DWORD dwRet=1;
SJA1000_VBASE=VirtualAlloc (0, 0x04,MEM_RESERVE, PAGE_NOACCESS);
dwRet=VirtualCopy(SJA1000_VBASE, (PVOID)(SJA1000_PHYBASE>>8), 0x04, PAGE_READWRITE |PAGE_NOCACHE | PAGE_PHYSICAL);
3.2.2 CAN_Open()函數(shù)
CAN_Open()函數(shù)主要完成初始化,創(chuàng)建有名事件。初始化包括寄存器初始化、SJA1000初始化、緩沖區(qū)初始化、CAN設(shè)備初始化設(shè)置工作方式和波特率參數(shù)等。在Win CE中有名事件可以在進(jìn)程間被識(shí)別,通過有名事件實(shí)現(xiàn)處于不同進(jìn)程中的驅(qū)動(dòng)程序與應(yīng)用程序間的通信,在此創(chuàng)建有名事件以備應(yīng)用程序使用。
3.2.3 CAN_IOControl()函數(shù)
在CAN通信應(yīng)用程序中通過調(diào)用CAN_IOControl()函數(shù)可根據(jù)自定義協(xié)議進(jìn)行相關(guān)參數(shù)設(shè)置。以波特率設(shè)置為例,定義IOCTL_CAN_SET_BAUDRATE函數(shù)之后,在應(yīng)用程序中通過設(shè)置控制代碼IoControlCode=IOCTL_CAN_SET_BAUDRATE,即可用DeviceIoControl直接調(diào)用進(jìn)行波特率的設(shè)置,而不必再對(duì)寄存器進(jìn)行設(shè)置,簡(jiǎn)化了應(yīng)用程序的開發(fā)。
在驅(qū)動(dòng)程序開發(fā)過程中還需注意Windows CE中斷的處理[6],處理中斷的幾個(gè)關(guān)鍵步驟是:首先在驅(qū)動(dòng)的初始過程中用CreateEvent()函數(shù)創(chuàng)建有名事件,調(diào)用InterruptInitialize()函數(shù)將事件與中斷號(hào)綁定同時(shí)設(shè)置該中斷使能標(biāo)識(shí)。驅(qū)動(dòng)程序中的中斷服務(wù)線程(IST)使用WaitForSingleObject()函數(shù)等待中斷發(fā)生,中斷發(fā)生時(shí)喚醒等待相應(yīng)事件的IST進(jìn)行中斷處理,處理完成后調(diào)用InterruptDone()函數(shù)告訴操作系統(tǒng)中斷處理結(jié)束,完成中斷處理。
中斷程序的任務(wù)是接收中斷觸發(fā)完成相應(yīng)操作。若接收到中斷類型為“接收中斷”,則讀緩存數(shù)據(jù),置中斷使能并SetEvent()設(shè)置同步等待事件對(duì)象為有信號(hào)量狀態(tài),若為其他類型中斷(如數(shù)據(jù)傳輸錯(cuò)誤中斷,總線錯(cuò)誤中斷,數(shù)據(jù)溢出中斷等)則置相應(yīng)中斷使能標(biāo)志,通信應(yīng)用程序即可根據(jù)使能標(biāo)志位捕捉錯(cuò)誤信息。處理完成后調(diào)用InterruptDone()函數(shù)完成中斷。中斷程序流程圖如圖5所示,其中bStop標(biāo)識(shí)符在初始化函數(shù)中賦值,線程創(chuàng)建成功賦False,中斷程序不斷查詢等待中斷到達(dá)。
完成驅(qū)動(dòng)程序的編寫后,需把驅(qū)動(dòng)程序與Win CE操作系統(tǒng)的其他組件一起編譯,將編譯后產(chǎn)生的文件封裝進(jìn)操作系統(tǒng)。需要完成的工作是,把驅(qū)動(dòng)程序?qū)懭胱?cè)表項(xiàng)并修改bib文件。
1)在注冊(cè)表文件Platform.reg中增加CAN子鍵和相應(yīng)鍵值。[HKEY_LOCAL_MACHINEDriversBuiltInCAN]"Index"=dword: 1;設(shè)備驅(qū)動(dòng)程序在同名設(shè)備文件中的序號(hào)
"Prefix"="CAN" ;設(shè)備文件前綴
"Dll"="can.dll" ;設(shè)備驅(qū)動(dòng)的DLL文件名
"Order"=dword: 0
圖5 中斷流程Fig.5 Interrupt Flowchart
2)在文件Platform.Bib的MODULE部分增加代碼“CAN.DLL $(_FLATRELEASEDIR)CAN1.DLL NK SH”,使CAN驅(qū)動(dòng)文件被包含在最終編譯生成的鏡像文件中。
完成驅(qū)動(dòng)封裝之后,就可在應(yīng)用程序中通過標(biāo)準(zhǔn)的文件I/O函數(shù)來調(diào)用驅(qū)動(dòng)函數(shù)控制設(shè)備“CAN1:”,如,調(diào)用CreateFile函數(shù)打開設(shè)備,調(diào)用ReadFile函數(shù)、WriteFile函數(shù)讀、寫設(shè)備信息,調(diào)用CloseHandle函數(shù)關(guān)閉設(shè)備。最終達(dá)到通過應(yīng)用程序訪問CAN驅(qū)動(dòng)程序、操作CAN設(shè)備的目的。
本次CAN通信協(xié)議采用自定義的協(xié)議規(guī)范。CAN報(bào)文采用CAN2.0B協(xié)議規(guī)范中的擴(kuò)展幀格式。CAN的一包幀由幀信息、幀ID、幀數(shù)據(jù)三部分組成,為使通信協(xié)議簡(jiǎn)單實(shí)用,規(guī)定幀信息只能為擴(kuò)展幀(29位ID),幀數(shù)據(jù)長(zhǎng)度為8個(gè)字節(jié)。幀ID定義如圖6所示,ID值越小優(yōu)先級(jí)越高。幀數(shù)據(jù)、8位功能代碼和8位功能代碼參數(shù)根據(jù)實(shí)際需求自行定義,需傳輸?shù)膮?shù)量近100個(gè),8位數(shù)據(jù)位(28=256)足夠使用。針對(duì)本系統(tǒng)定義的6位地址ID如表2所示。由于本次設(shè)計(jì)中CAN總線上設(shè)備較少,采用易于實(shí)現(xiàn)的總線形拓?fù)浣Y(jié)構(gòu)及多主式結(jié)構(gòu)的通信方式。
根據(jù)以上CAN通信協(xié)議實(shí)現(xiàn)織機(jī)上位機(jī)人機(jī)交互系統(tǒng)與底層主控板及送經(jīng)/卷取板的通信。當(dāng)人機(jī)交互系統(tǒng)啟動(dòng)后在總線上發(fā)送廣播ID偵聽總線上其他CAN設(shè)備的連接請(qǐng)求,在收到總線上CAN設(shè)備的發(fā)送的請(qǐng)求后按優(yōu)先級(jí)高低與其建立連接進(jìn)行通信。
圖6 幀ID定義Fig.6 De fi nition of Frame ID
表2 地址ID定義Tab.2 De fi nition of Address ID
驅(qū)動(dòng)封裝入系統(tǒng)后與系統(tǒng)鏡像一同下載到目標(biāo)設(shè)備中,再根據(jù)CAN通信協(xié)議規(guī)范編寫通信應(yīng)用程序來測(cè)通信是否正常,本次設(shè)計(jì)的通信應(yīng)用程序用C#語言編寫,采用Windows API函數(shù)操作文件的方式訪問CAN端口。用USB-CAN收發(fā)器連接普通計(jì)算機(jī)作為測(cè)試工具連接CAN收發(fā)器82C250的CANH、CANL兩腳進(jìn)行CAN通信的數(shù)據(jù)收發(fā)測(cè)試。
為提高CAN通信的實(shí)時(shí)數(shù)據(jù)處理能力,通信應(yīng)用程序設(shè)計(jì)引入多線程技術(shù),與底層CAN驅(qū)動(dòng)結(jié)合,采用中斷觸發(fā)及事件同步對(duì)象實(shí)現(xiàn)通信應(yīng)用程序與驅(qū)動(dòng)程序的實(shí)時(shí)通信,保證CAN總線上數(shù)據(jù)的即時(shí)接收與顯示,若在通信過程中出錯(cuò),則根據(jù)中斷類型判斷錯(cuò)誤原因以提示用戶進(jìn)行相應(yīng)操作。程序中除主線程負(fù)責(zé)消息處理之外另外創(chuàng)建2個(gè)輔助線程:一個(gè)是讀線程,用于監(jiān)聽CAN端口的緩沖是否有數(shù)據(jù)到達(dá)從而判斷是否執(zhí)行讀操作;另一個(gè)是顯示線程,用于在界面上實(shí)時(shí)顯示接收到的數(shù)據(jù)信息。輔助線程使用線程同步的事件對(duì)象信號(hào)量來觸發(fā)。主線程在打開CAN口后創(chuàng)建與驅(qū)動(dòng)程序初始化中創(chuàng)建的有名事件同名的事件,并將事件對(duì)象狀態(tài)標(biāo)識(shí)為“無信號(hào)”狀態(tài),同時(shí)在主線程中創(chuàng)建讀線程并阻塞等待,當(dāng)驅(qū)動(dòng)程序中類型為“讀中斷”的中斷觸發(fā),則設(shè)置事件為有信號(hào)量狀態(tài),阻塞的讀線程被激活,調(diào)用函數(shù)讀取“接收緩沖區(qū)”中數(shù)據(jù)。在界面顯示還需注意,用戶界面上的控件是由主線程創(chuàng)建的,在主線程外修改控件屬性涉及跨線程處理控件的問題,因?yàn)樵贑#中不允許在函數(shù)中直接修改本線程外的控件屬性,必須使用控件的Invoke方法修改。采用委托調(diào)用的方法,在聲明委托時(shí)需注意在Win CE中必須且只能是EventHandler委托。
CAN通信可供選擇的波特率范圍最低為10 K,最高可達(dá)1 M,經(jīng)數(shù)據(jù)收發(fā)測(cè)試結(jié)果表明在此波特率范圍下通信正常,通信發(fā)送方與接收的幀數(shù)據(jù)、幀格式一致且能即時(shí)收發(fā)數(shù)據(jù),根據(jù)測(cè)試經(jīng)驗(yàn)采用250 K的波特率傳輸穩(wěn)定性較好,傳送速度以ms為單位,實(shí)時(shí)性及可靠性都很好。
本研究提出了噴氣織機(jī)控制器CAN通信接口的設(shè)計(jì)與實(shí)現(xiàn)方法,給出基于EP9307微處理器和Win CE下CAN接口的具體實(shí)現(xiàn)過程,CAN接口電路設(shè)計(jì)中采取的措施提高了通信的可靠性及抗干擾能力。CAN接口驅(qū)動(dòng)開發(fā)為進(jìn)一步開發(fā)Win CE下CAN總線設(shè)備提供了一個(gè)良好的底層硬件驅(qū)動(dòng)支持,并可供以后開發(fā)基于Win CE下其他設(shè)備驅(qū)動(dòng)程序進(jìn)行參考。CAN通信測(cè)試結(jié)果表明,CAN通信正常且實(shí)時(shí)性較強(qiáng),能滿足噴氣織機(jī)控制器各機(jī)構(gòu)間的通信需求。
[1] 金玉珍,吳震宇,武傳宇,等.基于CAN總線噴氣織機(jī)控制系統(tǒng)的研制[J].紡織學(xué)報(bào),2009,30(2):117-120.
[2] 羅健飛,吳仲城,沈春山,等.基于ARM和Win CE下的設(shè)備接口驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與儀表,2009(3):1-3.
[3] 何宗鍵.Windows CE嵌入式系統(tǒng)[M].北京:北京航空航天大學(xué)出版社,2006.
[4] 劉濤.CAN總線接口電路設(shè)計(jì)中的關(guān)鍵問題[J].工礦自動(dòng)化,2007(1):100.
[5] 張毅,王學(xué)思.基于Win CE的流接口驅(qū)動(dòng)程序開發(fā)[J].工業(yè)控制計(jì)算機(jī),2008,21(6):47-48.
[6] 胡朝斌,王治森,董伯麟,等.基于Windows CE的數(shù)控系統(tǒng)中斷控制[J].中國機(jī)械工程,2005,16(9):761-764.
Design and Implementation of CAN Communication Interface for Air-jet Loom Controller
WANG Jing, HU Xu-dong, JIN Yu-zhen, HE Wei-qiang
(Zhejiang Province Key Laboratory of Modern Textile Machine, Zhejiang Sci-Tech University, Hangzhou 310018, China)
A design and implementation method of CAN communication interface for Air-jet loom controller based on Win CE was presented in the article. Firstly, the hardware circus of CAN communication interface was designed. Secondly, the working principle and the development environment of interface driver were introduced, the development process of the stream interface driver based on Win CE was discussed in detail.Finally, the application program of CAN communication was developed to test the communication effect.The test results showed that the CAN communication interface based on Win CE could achieve real-time communication.
Windows CE; CAN bus; Stream interface driver; Air-jet loom controller
TS103.337.11;TP316.7
A
1001-7003(2010)01-0031-05
2009-06-27
浙江省自然科學(xué)基金項(xiàng)目(Y1080469)
汪靜(1986- ),女,碩士研究生,研究方向?yàn)榧徔椩O(shè)備機(jī)電一體化。通訊作者:胡旭東,教授,xdhu@zstu.edu.cn。