英創(chuàng)ARM9工控主板的一個(gè)很大的特色就是提供了標(biāo)準(zhǔn)的CAN總線(xiàn)通訊接口,客戶(hù)可以方便地在工業(yè)現(xiàn)場(chǎng)、汽車(chē)、船舶等等領(lǐng)域進(jìn)行CAN通信應(yīng)用。由于英創(chuàng)ARM9嵌入式主板采用WinCE操作系統(tǒng),很多客戶(hù)都選擇了界面友好、開(kāi)發(fā)便利的C#語(yǔ)言(使用Visual Studio 2005.NET集成開(kāi)發(fā)環(huán)境);以往用戶(hù)在使用C#操作控制CAN總線(xiàn)的時(shí)候,是使用英創(chuàng)提供的動(dòng)態(tài)鏈接庫(kù),采用傳統(tǒng)的DllImport方法,首先在程序開(kāi)始的地方來(lái)進(jìn)行函數(shù)申明,然后才能在程序中進(jìn)行調(diào)用;而這個(gè)動(dòng)態(tài)鏈接庫(kù)里面函數(shù)的EntryPoint由于系統(tǒng)的原因,往往是一個(gè)古怪的名字,而且英創(chuàng)每次在進(jìn)行動(dòng)態(tài)鏈接庫(kù)的升級(jí)后,這個(gè)EntryPoint的名字就可能發(fā)生變化,這對(duì)用戶(hù)程序的可維護(hù)性帶來(lái)極大的不便。為了解決這個(gè)問(wèn)題,英創(chuàng)公司現(xiàn)在提供了操作CAN總線(xiàn)的COM組件接口;用戶(hù)只需要在目標(biāo)平臺(tái)上進(jìn)行組件注冊(cè),然后在C#程序開(kāi)發(fā)的時(shí)候,對(duì)該COM組件添加引用,即可在程序里面自由地通過(guò)對(duì)象操作來(lái)使用函數(shù),而不必去費(fèi)心地進(jìn)行函數(shù)申明的工作。下面我們就以EM9000嵌入式主板為實(shí)例,在C#使用COM組件接口操作CAN總線(xiàn)作一個(gè)說(shuō)明:
一、在目標(biāo)嵌入式主板上進(jìn)行COM組件注冊(cè)
CAN COM組件的核心文件就是英創(chuàng)提供的ComCAN.dll動(dòng)態(tài)鏈接庫(kù)文件,首先需要將它在目標(biāo)嵌入式工控主板上注冊(cè)。用戶(hù)可以使用Visual Studio Remote Tools提供的“遠(yuǎn)程文件查看器”連接目標(biāo)嵌入式工控主板,并將英創(chuàng)提供的ComCAN.dll和REGSVR32.exe這兩個(gè)文件下載到目標(biāo)主板的Flash存儲(chǔ)器上去(這里假設(shè)下載到EM9000的NOR Flash)。然后在開(kāi)發(fā)主機(jī)PC上使用Telnet連接目標(biāo)工控主板(如圖),進(jìn)入放置剛才下載這兩個(gè)文件的Flash存儲(chǔ)器目錄,運(yùn)行:
REGSVR32 ComCAN.dll
即可完成COM組件注冊(cè)。
二、在C#工程中添加COM組件引用
接下來(lái)可以進(jìn)入C# COM組件開(kāi)發(fā)。首先將ComCAN.dll文件復(fù)制到用戶(hù)的C#工程目錄下,然后在Visual Studio 2005.NET集成開(kāi)發(fā)環(huán)境中打開(kāi)用戶(hù)工程。為了使用CAN總線(xiàn)COM組件,必須為該工程添加外部引用;用戶(hù)可在集成開(kāi)發(fā)環(huán)境的右側(cè)的“解決方案資源管理器”中找到“引用”,對(duì)其單擊鼠標(biāo)右鍵,然后單擊“添加引用”(如圖)。