SFISA7621一種隔離型CAN總線通訊板_第1頁
SFISA7621一種隔離型CAN總線通訊板_第2頁
SFISA7621一種隔離型CAN總線通訊板_第3頁
SFISA7621一種隔離型CAN總線通訊板_第4頁
SFISA7621一種隔離型CAN總線通訊板_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1. 綜述SFISA-7621一種隔離型CAN總線通訊板,可方便地應(yīng)用于裝有ISA 總線插槽的微機(jī)。PC操作系統(tǒng)可選用目前流行的 Windows 系列、Unix等多種操作系統(tǒng)環(huán)境。CAN是一種數(shù)字化總線通訊標(biāo)準(zhǔn),采用總線仲裁方式進(jìn)行網(wǎng)絡(luò)管理,實(shí)時(shí)性很高,可保證系統(tǒng)對(duì)事件的響應(yīng),而且通訊可靠性高,CAN主要應(yīng)用于可靠性要求價(jià)高的系統(tǒng)中。2. 性能與技術(shù)參數(shù)2.1. 技術(shù)參數(shù)= CAN通道數(shù):兩個(gè)= CAN網(wǎng)絡(luò)通訊最高速率1Mbit/s= 隔離耐壓:1000Vdc2.2. 使用環(huán)境要求= 工作溫度:040;相對(duì)濕度:4080; 存貯溫度:-55+85;2.3. 電源功耗= +5V/300mA2.4

2、. 外形尺寸=外型尺寸(不含檔板):長(zhǎng)高160mm X 96mm3. 工作原理SFISA-7621隔離型CAN總線通訊板有ISA總線接口部分和CAN通訊部分。ISA總線接口部分實(shí)現(xiàn)通訊板與PC機(jī)數(shù)據(jù)接口,控制邏輯由CPLD電路內(nèi)部設(shè)計(jì)的邏輯實(shí)現(xiàn),總線寬度8位。CAN通訊部分實(shí)現(xiàn)了CAN物理層和數(shù)據(jù)鏈路層協(xié)議,主要由CAN網(wǎng)絡(luò)接口控制器SJA1000T(Philips)實(shí)現(xiàn),網(wǎng)絡(luò)收發(fā)器使用82C250(Philips),連接接口通過DB-9實(shí)現(xiàn)。Bus-HBus-L ISA BUSBus-LBus-HCAN82C50CAN82C50SJA1000TSJA1000TISABUS接口邏輯4. 安裝及

3、使用注意安裝本卡的安裝十分簡(jiǎn)便,只要將主機(jī)機(jī)殼打開,在關(guān)電情況下,將本卡插入主機(jī)的任何一個(gè)ISA總線空余擴(kuò)展槽中,再將檔板固定螺絲壓緊即可。DB-9插頭可從主機(jī)后面引出并與外設(shè)連接。使用注意在安裝或用手觸摸本卡時(shí),應(yīng)避免直接用手接觸器件管腳,以免損壞器件。 本卡跳線器較多,使用中應(yīng)嚴(yán)格按照說明書進(jìn)行設(shè)置操作。禁止帶電插拔插本接口卡。設(shè)置接口卡開關(guān)、跳線和安裝接口電纜均應(yīng)在關(guān)電狀態(tài)下進(jìn)行。5. 使用與操作5.1. 插座接口定義與連接方式 GNDGNDBus-LBus-H CAN接口DB-9管腳(XS1、XS2)接口信號(hào)定義說明Bus-H:CAN通訊信號(hào)高電平Bus-L:CAN通訊信號(hào)低電平GND

4、: 地5.2. 跳線設(shè)置板基地址選擇 A3A4 A5 A6 A7A8 A9XF4 選擇扳基地址=280h(640) 計(jì)算方法: 按位權(quán)相加.例如:A0位權(quán)20=1;. 24=16; 27=128; 29=512; 選擇扳基地址280h=27+29=128+512=640; 290h=24+27+29=16+128+512=656; 跨接套連上對(duì)應(yīng)地址選擇位權(quán)為0,斷開為1中斷選擇 XF5(XF7) XF6(XF8)從左向右為:無中斷、IRQ4、IRQ5、IRQ6、IRQ7、IRQ9、IRQ14、IRQ13、IRQ12、IRQ11、IRQ10、XF5、XF6為端口0中斷選擇XF7、XF8為端口1

5、中斷選擇終端電阻連接XF1對(duì)應(yīng)端口一、XF3對(duì)應(yīng)端口二,跳接上則可以匹配120電阻以消除傳送過程中的反射,提高抗干擾能力。5.3. 地址端口分配與控制寄存器描述本卡上的IO及控制字?jǐn)?shù)據(jù)操作均為8位表5.1 SFISA7621卡內(nèi)部地址分配表地址 寫讀板基地址0CAN端口0地址寄存器未使用板基地址1CAN端口0數(shù)據(jù)寄存器板基地址2CAN端口0中斷復(fù)位未使用板基地址3CAN端口1地址寄存器未使用板基地址4CAN端口1數(shù)據(jù)寄存器板基地址5CAN端口1中斷復(fù)位未使用板基地址6控制寄存器狀態(tài)寄存器通道端口控制地址選擇寄存器(板基地址0、板基地址3寫)執(zhí)行地址寄存器8位寫操作,可以選擇SJA1000T的C

6、AN通訊控制寄存器。通道端口控制數(shù)據(jù)收發(fā)寄存器(板基地址1、板基地址4讀寫)執(zhí)行8位寫操作,可以對(duì)選擇好的SJA1000T的CAN通訊控制寄存器進(jìn)行設(shè)置。執(zhí)行8位讀操作,可以讀去選擇好的SJA1000T的CAN通訊控制寄存器狀態(tài)。通道端口中斷復(fù)位(板基地址2、板基地址5寫) 執(zhí)行寫操作復(fù)位對(duì)應(yīng)端口產(chǎn)生的通訊事件中斷。接口板控制寄存器設(shè)置(板基地址6寫)表5.2 模擬輸入通道選擇數(shù)據(jù)格式D7D6D5D4D3D2D1D0NCNCNCNCC1C0E1E0E0、E1用于端口中斷屏蔽E0 = 1 端口0中斷使能E0 = 0 端口0中斷屏蔽E1 = 1 端口1中斷使能E1 = 0 端口1中斷屏蔽C0、C1

7、用于SJA1000T的工作時(shí)鐘選擇表5.3 接口板狀態(tài)寄存器(板基地址6讀)C1C0工作時(shí)鐘0024Mhz0112Mhz106Mhz113Mhz6. 軟件簡(jiǎn)要說明隨機(jī)提供的軟件是北京科爾特興業(yè)測(cè)控研究所為用戶提供的測(cè)試軟件及其開發(fā)包。用戶如果使用科爾特提供的驅(qū)動(dòng)程序,則可以通過隨機(jī)的開發(fā)包,開發(fā)自己的用戶控制程序;并可以通過測(cè)試軟件檢測(cè)ISA7621的硬件是否正常工作,并了解ISA7621進(jìn)行CAN通訊控制的參數(shù)控制 和操作特性。注意:軟件應(yīng)用及其使用說明建立在本公司提供的設(shè)備驅(qū)動(dòng)程序上。本說明不涉及用戶通過技術(shù)說明書編制自己的驅(qū)動(dòng)程序以及根據(jù)驅(qū)動(dòng)接口編制的用戶控制程序的內(nèi)容。7. 提供的軟件

8、內(nèi)容隨板卡提供的軟件包括:驅(qū)動(dòng)及安裝、測(cè)試程序、接口動(dòng)態(tài)連接庫(kù)和函數(shù)說明、編程舉例驅(qū)動(dòng)程序與驅(qū)動(dòng)安裝文件,目錄路徑:Product_ISA7621ISA7621 Driver Product_ISA7621ISA7621 Driver win98 Windows 98驅(qū)動(dòng)目錄Product_ISA7621ISA7621 Driver win2k Windows 2000驅(qū)動(dòng)目錄Product_ISA7621ISA7621 Driver winXP Windows xp驅(qū)動(dòng)目錄Product_ISA7621ISA7621 Driver winNT Windows NT驅(qū)動(dòng)目錄接口動(dòng)態(tài)連接庫(kù)路徑P

9、roduct_ISA7621Develop ISA7621LibDLL接口函數(shù)定義文件Product_ISA7621Develop ISA7621Include測(cè)試程序路徑Product_ISA7621Test ISA7621編程舉例源碼路徑Product_ISA7621Samples Source8. 驅(qū)動(dòng)安裝與設(shè)備管理對(duì)于在windows的操作系統(tǒng)下安裝驅(qū)動(dòng)程序的方法如下1、關(guān)閉計(jì)算機(jī)的電源;2、將ISA7621板卡插入ISA插槽中;3、打開計(jì)算機(jī)電源,啟動(dòng)計(jì)算機(jī);4、進(jìn)入Product_ISA7621ISA7621 Driver目錄下,運(yùn)行SFSetup.exe安裝程序;5、確定設(shè)備列表

10、中沒有安裝ISA7621驅(qū)動(dòng),選擇安裝新驅(qū)動(dòng),進(jìn)入下一步;6、從列表中選擇“ISA7621:雙路CAN通訊板進(jìn)入下一步;7、在文件打開對(duì)話框中查找到Isa7621.sys驅(qū)動(dòng)程序文件,按打開按鈕,進(jìn)入下一步;8、程序隱含安裝一個(gè)設(shè)備,對(duì)這個(gè)設(shè)備的參數(shù)進(jìn)行修改:雙擊對(duì)應(yīng)參數(shù)項(xiàng),彈出對(duì)應(yīng)參數(shù)選擇列表,選擇硬件跳線設(shè)置的參數(shù)(該參數(shù)與系統(tǒng)其他設(shè)備不能發(fā)生沖突,否則設(shè)備不能使用,嚴(yán)重會(huì)造成死機(jī));隱含設(shè)置參數(shù)為IO端口(PORTBASE)為280H,中斷號(hào)IRQ_1為7,IRQ_2為5;按確認(rèn)修改進(jìn)入下一步;9、如果安裝成功會(huì)提示成功安裝,需要重新啟動(dòng)系統(tǒng)。如果需要安裝多個(gè)設(shè)備,返回一級(jí)對(duì)話框,選擇添

11、加已安裝板卡的新設(shè)備(參照11.2)。各個(gè)設(shè)備的硬件資源占用情況不能存在沖突,也不能和系統(tǒng)其他設(shè)備沖突。設(shè)置的參數(shù)值必須與硬件調(diào)線一致。否則不能正常使用。用戶進(jìn)行驅(qū)動(dòng)安裝和設(shè)備管理使用SFSetup.exe程序。注意:ISA7621上電初始工作頻率為24Mhz。8. 3. 1 添加設(shè)備1、 啟動(dòng)SFSetup.exe,在當(dāng)前設(shè)備列表中選擇驅(qū)動(dòng)名稱為ISA7621的設(shè)備項(xiàng);2、 選擇“添加已安裝板卡的新設(shè)備”,進(jìn)入下一步,在彈出的提示框中,按確定;3、 如果在添加新設(shè)備對(duì)話框中的當(dāng)前ISA7621設(shè)備數(shù)小于4個(gè),進(jìn)入下一步;4、 修改新添加的設(shè)備硬件配置參數(shù):雙擊對(duì)應(yīng)參數(shù)項(xiàng),彈出對(duì)應(yīng)參數(shù)選擇列表

12、,選擇硬件跳線設(shè)置的參數(shù)(該參數(shù)與系統(tǒng)其他設(shè)備不能發(fā)生沖突,否則設(shè)備不能使用,嚴(yán)重會(huì)造成死機(jī));隱含設(shè)置參數(shù)為IO端口(PORTBASE)為280H,中斷號(hào)IRQ1為7,IRQ2為5;按確認(rèn)修改進(jìn)入下一步;5、正確添加新設(shè)備,需要重新啟動(dòng)系統(tǒng),才能正確控制設(shè)備。按確定立即啟動(dòng),取消返回主界面。8. 3. 2 刪除設(shè)備1、 啟動(dòng)SFSetup.exe,在當(dāng)前設(shè)備列表中選擇驅(qū)動(dòng)名稱為ISA7621的設(shè)備項(xiàng);2、 選擇“刪除同類板卡序號(hào)最大的設(shè)備”,進(jìn)入下一步,在彈出的提示框中,按確定;3、 成功刪除設(shè)備后,需要重新啟動(dòng)系統(tǒng),才能正確控制設(shè)備。按確定立即啟動(dòng),取消返回主界面。 8. 3. 3 設(shè)置參

13、數(shù)1、啟動(dòng)SFSetup.exe,在當(dāng)前設(shè)備列表中選擇需要修改參數(shù)的ISA7621的設(shè)備項(xiàng)2、按修改設(shè)備參數(shù)按鈕,進(jìn)入?yún)?shù)修改對(duì)話框,雙擊對(duì)應(yīng)參數(shù)項(xiàng),彈出對(duì)應(yīng)參數(shù)選擇列表,選擇硬件跳線設(shè)置的參數(shù)(該參數(shù)與系統(tǒng)其他設(shè)備不能發(fā)生沖突,否則設(shè)備不能使用,嚴(yán)重會(huì)造成死機(jī)); 3、 重復(fù)1、2修改完所需修改設(shè)備,重新啟動(dòng)機(jī)器,按新的設(shè)置工作。8. 3. 4 升級(jí)驅(qū)動(dòng)程序1、 啟動(dòng)SFSetup.exe,在當(dāng)前設(shè)備列表中選擇驅(qū)動(dòng)名稱為ISA7621的設(shè)備項(xiàng);2、 選擇“添加已安裝板卡的新設(shè)備”,進(jìn)入下一步,在彈出的提示框中,按確定;3、 在文件打開對(duì)話框中查找到新的Isa7621.sys驅(qū)動(dòng)程序文件,按打

14、開按鈕,進(jìn)入下一步;4、 如果安裝成功會(huì)提示成功安裝,需要重新啟動(dòng)系統(tǒng),按確定立即啟動(dòng),取消返回主界面;8. 3. 5 刪除驅(qū)動(dòng)1、 啟動(dòng)SFSetup.exe,在當(dāng)前設(shè)備列表中選擇驅(qū)動(dòng)名稱為ISA7621的設(shè)備項(xiàng);2、 選擇“刪除驅(qū)動(dòng)”,進(jìn)入下一步,在彈出的提示框中,按確定;3、 如果正確刪除驅(qū)動(dòng),需要重新啟動(dòng)系統(tǒng),按確定立即啟動(dòng),取消返回主界面。8. 3. 6 系統(tǒng)資源查詢方法在NT/windows2000/xp系統(tǒng)中,使用系統(tǒng)信息工具,選擇硬件資源可以查詢到系統(tǒng)當(dāng)前的硬件資源占用情況。(在開始菜單中的附件/系統(tǒng)工具/系統(tǒng)信息中啟動(dòng))在windows9x系統(tǒng)中,使用設(shè)備管理器工具,選擇計(jì)算

15、機(jī)屬性(鼠標(biāo)指定列表中的計(jì)算機(jī)項(xiàng),按右鍵,選擇屬性),可以查看資源。進(jìn)行參數(shù)設(shè)置時(shí),選擇系統(tǒng)沒有占用的資源,設(shè)置ISA7621的硬件資源,并保證硬件板上跳線選擇與設(shè)置參數(shù)一致(否則無法正常工作)。注意:如果出現(xiàn)中斷資源不足,中斷被PCI、USB設(shè)備大量占用時(shí),可在計(jì)算機(jī)啟動(dòng)時(shí),通過設(shè)置BIOS參數(shù),使ISA設(shè)備獨(dú)占選定的中斷資源。9. 測(cè)試程序使用說明9.1測(cè)試程序功能測(cè)試程序用于測(cè)試ISA7621的通訊功能工作情況和調(diào)試板上參數(shù)。可以測(cè)試CAN端口的通訊信息收發(fā)。9.2. 端口參數(shù)設(shè)置界面上的傳送速率為24Mhz工作頻率下的CAN通訊速率。1,選擇傳送速率和工作時(shí)鐘:實(shí)際的CAN通訊速率 =

16、 傳送速率X工作時(shí)鐘/24M2,設(shè)置端口0、端口1的地址掩碼和本地地址,執(zhí)行“初始化端口” 9.3. 端口數(shù)據(jù)發(fā)送編輯發(fā)送內(nèi)容,執(zhí)行“單步發(fā)送”; 9.4. 端口數(shù)據(jù)接收接收端口收到數(shù)據(jù),會(huì)顯示接收數(shù)據(jù),可對(duì)照發(fā)送端口的發(fā)送內(nèi)容;同時(shí)“已收數(shù)據(jù)幀數(shù)”加一。9.5. 端口數(shù)據(jù)連續(xù)收發(fā)設(shè)置“連續(xù)發(fā)送數(shù)據(jù)幀數(shù)”,執(zhí)行“連續(xù)發(fā)送”;發(fā)送端口會(huì)按照設(shè)置的幀數(shù)發(fā)送數(shù)據(jù)幀;已收數(shù)據(jù)幀數(shù),會(huì)顯示接收到的數(shù)據(jù)幀數(shù)。10. 編程說明編程使用本公司提供的驅(qū)動(dòng)時(shí)請(qǐng)注意,本公司為用戶提供了VC和CBuilder兩種格式的DLL。除CBuilder編程使用CBuilder格式的Isa7621Cbdll.dll,其他編程環(huán)

17、境建議用戶使用標(biāo)準(zhǔn)格式的Isa7621Dll.dll。用戶可以在Product_ISA7621Develop 控制方式舉例由VC+程序說明,其它語言開發(fā)說明請(qǐng)參考在文檔中提供的編程舉例。10.1. 數(shù)據(jù)說明l SJA1000T CAN通訊速率選擇參數(shù)(24M工作時(shí)鐘下)#defineCAN_BPS_1M0xc0a3#defineCAN_BPS_500K0xc1a3#defineCAN_BPS_250K0xc2a3#defineCAN_BPS_125K0xc7a3#defineCAN_BPS_50K0xc7afl CAN通訊信息幀說明typedef struct _CANFRAME UCHARm

18、Frame10;CANFRAME,*PCANFRAME;信息幀分信息和數(shù)據(jù)兩部分。頭兩個(gè)字節(jié)為信息部分,前11位(0-10)為標(biāo)識(shí)符,標(biāo)識(shí)符的前8位(ID)用于接收判斷,應(yīng)包含這一幀的目的站地址;第11位為RTR位,應(yīng)設(shè)為0,最后是4位的DLC表示數(shù)據(jù)長(zhǎng)度,單位為字節(jié),幾所發(fā)數(shù)據(jù)的實(shí)際長(zhǎng)度。其余8個(gè)字節(jié)是數(shù)據(jù)部分。76543210字節(jié)1標(biāo)識(shí)符(ID)字節(jié)2標(biāo)識(shí)符RTRDLC字節(jié)3數(shù) 據(jù)字節(jié)4數(shù) 據(jù)字節(jié)5數(shù) 據(jù)字節(jié)6數(shù) 據(jù)字節(jié)7數(shù) 據(jù)字節(jié)8數(shù) 據(jù)字節(jié)9數(shù) 據(jù)字節(jié)10數(shù) 據(jù)l 接收地址屏蔽字(掩碼)CAN_MASK接收屏蔽字用于接收數(shù)據(jù)的過濾,與本地地址共同作用決定本站可接收的信息幀。判斷方式如下

19、:ID | CAN_MASK = 本地地址 | CAN_MASK接收所有信息幀,CAN_MASK設(shè)為0xFF;只接收發(fā)給自己的信息幀,CAN_MASK設(shè)為0x0。10.2. 接口函數(shù)說明設(shè)備管理 BOOL _stdcall ISA7621_IsOpen(int mDev)用途: 確認(rèn)設(shè)備是否已經(jīng)打開;返回參數(shù):返回值為BOOL,返回TRUE表示該設(shè)備已經(jīng)正確打開,F(xiàn)ALSE表示該設(shè)備未被打開;調(diào)用參數(shù):mDev32位int設(shè)備序號(hào)。取值為范圍0-3;BOOL _stdcall ISA7621_Open(int mDev)用途: 打開一個(gè)7621設(shè)備;返回參數(shù):返回值為BOOL,返回TRUE表示

20、該設(shè)備打開成功,F(xiàn)ALSE表示該設(shè)備打開失??;調(diào)用參數(shù):mDev32位int需要打開的設(shè)備序號(hào)。取值為范圍0-3;BOOL _stdcall ISA7621_Close(int mDev)用途: 關(guān)閉一個(gè)7621設(shè)備;返回參數(shù):返回值為BOOL返回TRUE表示該設(shè)備關(guān)閉成功,F(xiàn)ALSE表示該設(shè)備關(guān)閉失??;調(diào)用參數(shù):mDev32位int需要打開的設(shè)備序號(hào)。取值為范圍0-3;BOOL _stdcall ISA7621_GetVersion(int mDev,char *pVersion)用途: 獲取7621設(shè)備驅(qū)動(dòng)的版本號(hào);返回參數(shù):返回值為BOOL返回TRUE表示函數(shù)執(zhí)行成功,F(xiàn)ALSE表示函數(shù)

21、執(zhí)行失??;調(diào)用參數(shù):mDev32位int設(shè)備序號(hào)。取值為范圍0-3;pVersion byte串保存版本號(hào)的字符串(最小長(zhǎng)度16字節(jié))BOOL_stdcallIsa7621_SetClk(int mDev,int mClk);用途: 用于ISA7621板上的SJA1000T工作時(shí)鐘選擇;返回參數(shù):返回值為BOOL返回TRUE表示成功,F(xiàn)ALSE表示失?。徽{(diào)用參數(shù):mDev32位int設(shè)備序號(hào)。取值為范圍0-3;mClk32位int時(shí)鐘選擇參數(shù)(0-3);0 24Mhz1 12Mhz2 6Mhz0 3Mhz端口初始化BOOL_stdcallIsa7621_InitState(int mDev,i

22、nt nPort,UINTCAN_bps,UCHARCAN_StationAddress,UCHARCAN_Mask,HANDLEhWnd);BOOL_stdcallIsa7621_InitStateEx(int mDev,intnPort,UINTCAN_bps,UCHARCAN_StationAddress,UCHARCAN_Mask,HANDLEmRxEvent);用途: 用于ISA7621通訊端口的初始化;返回參數(shù):返回值為BOOL返回TRUE表示初始化成功,F(xiàn)ALSE表示初始化失??;調(diào)用參數(shù):mDev32位int設(shè)備序號(hào)。取值為范圍0-3;nPort32位int端口序號(hào)。取值為范圍0

23、-1;CAN_bps 16位UINTSJA1000T CAN通訊速率選擇參數(shù)(24M工作時(shí)鐘下)取值為:CAN_BPS_1M0xc0a3CAN_BPS_500K0xc1a3CAN_BPS_250K0xc2a3CAN_BPS_125K0xc7a3CAN_BPS_50K0xc7afCAN_StationAddress nPort端口對(duì)應(yīng)的站地址CAN_Mask nPort端口數(shù)據(jù)接收屏蔽字mRxEvent事件句柄用于判斷該端口接收到數(shù)據(jù)的信號(hào)量hWnd窗口句柄指示接收數(shù)據(jù)后需要通知的窗口數(shù)據(jù)發(fā)送BOOL_stdcallIsa7621_Send(int mDev,int mPort,PCANFRAM

24、E pSendFrame);用途: 用于ISA7621通訊端口的發(fā)送數(shù)據(jù)幀;返回參數(shù):返回值為BOOL返回TRUE表示發(fā)送成功,F(xiàn)ALSE表示發(fā)送失??;調(diào)用參數(shù):mDev32位int設(shè)備序號(hào)。取值為范圍0-3;nPort32位int端口序號(hào)。取值為范圍0-1;pSendFrame數(shù)據(jù)幀指針(數(shù)據(jù)幀定義見10.1節(jié) 數(shù)據(jù)說明)數(shù)據(jù)讀取int_stdcallIsa7621_ReadFrame(int mDev,int mPort,CANFRAME *pFrame);用途: 用于讀取ISA7621通訊端口的接收到的數(shù)據(jù)幀;返回參數(shù):返回值為32位int返回值小于0表示讀取失敗或沒有數(shù)據(jù);返回值等于0

25、,表示讀取完成,并且沒有剩余接收緩沖數(shù)據(jù)幀;返回值大于0,表示接收緩沖區(qū)還剩余的接收數(shù)據(jù)幀數(shù);調(diào)用參數(shù):mDev32位int設(shè)備序號(hào)。取值為范圍0-3;nPort32位int端口序號(hào)。取值為范圍0-1;pSendFrame放置接收數(shù)據(jù)幀的緩沖區(qū)指針; int_stdcallIsa7621_ReadFrameEx(int mDev,int mPort,CANFRAME *pFrame,int *rMax);用途: 用于讀取ISA7621通訊端口的接收到的數(shù)據(jù)幀;返回參數(shù):返回值為32位int返回值小于0表示讀取失敗或沒有數(shù)據(jù);返回值等于0,表示讀取完成,并且沒有剩余接收緩沖數(shù)據(jù)幀;返回值大于0,

26、表示接收緩沖區(qū)還剩余的接收數(shù)據(jù)幀數(shù);調(diào)用參數(shù):mDev32位int設(shè)備序號(hào)。取值為范圍0-3;nPort32位int端口序號(hào)。取值為范圍0-1;pSendFrame放置接收數(shù)據(jù)幀的緩沖區(qū)指針; rMax32位int指針指向表示需要一次讀出的數(shù)據(jù)幀數(shù)量,必須小于等于pSendFrame指向的以幀為單位的緩沖區(qū)大小值,調(diào)用結(jié)束后,表示實(shí)際讀出的數(shù)據(jù)幀數(shù);10.3. VC實(shí)現(xiàn)功能舉例參照提供的VC+程序源碼,在Product_ISA76211Samples SourceVcSample7621用戶編程時(shí),在程序中包含接口說明文件ISA7621.h,在工程中添加動(dòng)態(tài)連接庫(kù)的導(dǎo)入庫(kù)ISA7621dll.

27、lib。或自己使用現(xiàn)實(shí)加載。設(shè)備打開if(!Isa7621_IsOpen(0) /判斷0號(hào)設(shè)備是否打開if(!Isa7621_Open(0)AfxMessageBox(Isa7621設(shè)備打開正確);else AfxMessageBox(Isa7621設(shè)備打開失敗);初始化端口HANDLE mRx0Event=NULL;HANDLE mRx1Event=NULL;mRx0Event = CreateEvent(NULL,TRUE,FALSE,NULL);mRx1Event = CreateEvent(NULL,TRUE,FALSE,NULL);if(!Isa7621_InitStateEx(0,

28、0,CAN_BPS_250K,1,0xff,mRx0Event)AfxMessageBox(端口0初始化失敗);elseAfxMessageBox(端口0初始化正確);if(!Isa7621_InitStateEx(0,1,CAN_BPS_250K,1,0xff,mRx1Event)AfxMessageBox(端口1初始化失敗);elseAfxMessageBox(端口1初始化正確);數(shù)據(jù)收發(fā):CANFRAME ddd;CANFRAME ddd1;ddd.mFrame0=0x8f;/CAN ID0ddd.mFrame1=0x88;/CAN ID1ddd.mFrame2=0x31;ddd.mFr

29、ame3=0x32;ddd.mFrame4=0x33;ddd.mFrame5=0x34;ddd.mFrame6=0x35;ddd.mFrame7=0x36;ddd.mFrame8=0x37;ddd.mFrame9=0x38;if(!Isa7621_Send(0,0,&ddd)AfxMessageBox(端口0發(fā)送失敗);return;if(WaitForSingleObject(mRx1Event,1000) = WAIT_OBJECT_0) ResetEvent(mRx1Event);AfxMessageBox(端口1收到數(shù)據(jù));if(!Isa7621_ReadFrame(0,1,&ddd1

30、)AfxMessageBox(端口1讀取數(shù)據(jù)失敗);elseAfxMessageBox(端口1讀取數(shù)據(jù)成功);設(shè)備關(guān)閉if(Isa7621_IsOpen(0)if(!Isa7621_Close(0)AfxMessageBox(Isa7621設(shè)備關(guān)閉正確);else AfxMessageBox(Isa7621設(shè)備關(guān)閉失敗);10.4. CBuilder接口說明參照提供的CBuilder+程序源碼,在Product_ISA7561Samples SourceCbSample7621。用戶編程時(shí),在程序中包含接口說明文件CbIsa7621dll.h,在工程中添加動(dòng)態(tài)連接庫(kù)的導(dǎo)入庫(kù)CbIsa7621d

31、ll.lib?;蜃约菏褂矛F(xiàn)實(shí)加載。CBuilder是用自己獨(dú)立的DLL:CbIsa7621dll.dll。編程的函數(shù)調(diào)用與設(shè)備控制與VC相同。10.5. Delphi接口方法舉例參照為用戶提供的Delph程序源碼,保存在Product_ISA7621 Samples SourceDelphSample7621目錄下。用戶編程時(shí),在程序工程中包含接口類型說明文件ISA7621.pas。用戶使用API函數(shù)控制編程時(shí)需要用HH:=LoadLibrary(ISA7621DLL.dll)顯式加載動(dòng)態(tài)連接庫(kù)ISA7621DLL.dll;退出時(shí)用FreeLibrary(HH)釋放;使用GetProcAddr

32、ess 函數(shù)導(dǎo)出接口API函數(shù)例如:varISA7621_IsOpen:TISA7621_IsOpen;implementation/ TISA7621_IsOpen在ISA7621.pas定義其類型 ISA7621_IsOpen := GetProcAddress(HH,ISA7621_IsOpen)在例子中給出了接口方法和一個(gè)完整的示例。幀結(jié)構(gòu)定義type PCANFRAME = CANFRAME ; CANFRAME = record mFrame:Array 0.9 of byte;end;函數(shù)說明如下。type PInt = Integer; PWord = WORD; HANDLE

33、 = DWORD; TIsa7621_IsOpen=function(mDev:DWORD): bool; stdcall; TIsa7621_Open=function(mDev:DWORD): bool; stdcall; TIsa7621_Close=function(mDev:DWORD): bool; stdcall; TIsa7621_InitStateEx=function(mDev:DWORD;nPort:DWORD;CAN_bps:WORD; CAN_StationAddress:BYTE;CAN_Mask:BYTE;mRxEvent:HANDLE): bool; stdca

34、ll; TIsa7621_Send=function(mDev:DWORD;nPort:DWORD;pSendFrame:PCANFRAME): bool;stdcall; TIsa7621_SetClk=function(mDev:DWORD;nPort:DWORD): bool; stdcall; TIsa7621_ReadFrame=function(mDev:DWORD;nPort:DWORD;pFrame:PCANFRAME): DWORD; stdcall; TIsa7621_ReadFrameEx=function(mDev:DWORD;nPort:DWORD;pFrame:PCANFRAME; rMax:PDWORD): DWORD; stdcall;10.6. VB接口方法舉例參照提供的VB程序源碼,在Product_ISA7621 Samples SourceVBSample7621用戶編程時(shí),在程序中包含接口說明文件ISA7621.BA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論