版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 MPB252P高高速速隔隔離離通通訊訊卡卡用用戶戶手手冊冊北北京京航航天天興興科科高高新新技技術術有有限限公公司司目目 錄錄1 概概述述 .12 硬硬件件安安裝裝 .33 軟軟件件安安裝裝 .43.1 驅動程序文件說明.43.2 安裝設備驅動程序.43.2.1 第一次安裝.43.2.2 多塊卡的安裝.83.3 卸載設備驅動程序.84 物物理理接接口口: .104.1 RS-422 模式 .104.2 RS-485 模式 .104.3 高阻態(tài)模式.104.4 數(shù)字量輸入和輸出.104.5 波特率選擇.114.6 LED 指示燈 .115 MPB252P 軟軟件件設設置置程程序序 .125.1
2、板上時鐘頻率 .125.2 通信協(xié)議 .125.2.1 HDLC透明模式.135.2.2 HDLC/PPP模式.135.2.2.1 按位同步 PPP.135.2.2.2 字節(jié)同步 PPP.135.2.2.3 異步字符 PPP.145.2.3 ASYNC模式.155.3 物理接口與發(fā)送時鐘.155.4 通信速率 .155.5 發(fā)送 CRC .155.6 空閑信號 .155.7 PPP 協(xié)議 MODEM 控制字符設置 .165.8 ASYNC 模式設置 .165.9 發(fā)送與接收緩沖區(qū)模式.166 API 函函數(shù)數(shù)說說明明 .176.1 端口打開函數(shù) .176.2 端口關閉函數(shù) .186.3 端口發(fā)
3、送函數(shù) .196.4 查詢端口接收長度函數(shù).216.5 端口接收函數(shù) .226.6 等待所有端口接收事件函數(shù).246.7 等待指定板卡接收事件函數(shù).266.8 等待指定端口接收事件函數(shù).286.9 讀取端口狀態(tài)函數(shù).306.10 非數(shù)字量函數(shù)錯誤碼說明.326.11 寫數(shù)字量輸出函數(shù).336.12 讀數(shù)字量輸入數(shù)據(jù)函數(shù).346.13 等待所有板卡的數(shù)字量輸入事件函數(shù).356.14 等待指定板卡的數(shù)字量輸入事件函數(shù).376.15 等待指定端口的數(shù)字量輸入事件函數(shù).396.16 等待指定端口指定路的數(shù)字量輸入事件函數(shù).417 信信號號接接口口和和電電纜纜.437.1 68P SCSI 連接器引腳信
4、號定義.437.2 轉接電纜 .447.3 LED 指示燈連接器引腳信號定義.448 規(guī)規(guī)格格 .459 維維修修承承諾諾和和技技術術支支持持.461 概概述述MPB252P 卡是一塊能提供2 路隔離高速串行數(shù)據(jù)通訊的模板。它內含一片高性能的串行通訊控制器,可用于各種高速數(shù)據(jù)通訊場合。每路都可以通過軟件編程獨立支持各種流行通訊協(xié)議。同步協(xié)議的每路最高通訊速率可達 10Mbit/秒;異步協(xié)議的每路最高通訊速率可達2Mbit/秒。MPB252P 各路可被設置為RS-485 或 RS-422 接口 。每一路在板上都有一對 LED 分別指示接收和發(fā)送的工作狀態(tài)。MPB252P 卡上有 20MHz 的晶
5、振,可適應各種標準的通訊波特率。主主要要特特性性 2 個高速串行通道最大通訊速率2Mbit/秒支持異步、 HDLC 等協(xié)議支持 RS-422、RS-485 接口或 RS-232 接口33M /32 位 PCI 總線接口PCI 總線 3V/5V 通用卡Windows2000 驅動程序產產品品包包裝裝信信息息 MPB252P 卡的包裝中應包括以下物品:MPB252P 卡 1 塊SCSI 68P 插頭到 2 個 DB25 插頭的轉接電纜1 根MPB252P 驅動和應用程序盤1 片(軟盤或光盤)2 硬硬件件安安裝裝1關閉計算機電源開關,拔下電源線。注注意意:進進行行以以下下操操作作前前,必必需需確確認
6、認計計算算機機的的電電源源已已處處于于關關閉閉狀狀態(tài)態(tài),否否則則可可能能損損壞壞計計算算機機主主板板和和MPB252P 卡卡。2打開機箱蓋。3拆除欲安裝 MPB252P 卡的插槽處的空擋板。4將 MPB252P 卡小心插入 PCI 插槽,擰上鎖緊螺釘。5把信號電纜插在68P SCSI 插座上,并保證處于鎖緊狀態(tài)。6蓋上機箱蓋。7插上計算機電源線,打開電源開關,進行軟件安裝。 3 軟軟件件安安裝裝3.1 驅驅動動程程序序文文件件說說明明MPB252P 卡軟件運行環(huán)境為Windows 2000 中文版,安裝盤中包括以下目錄和文件:Driver:驅動程序目錄,包括MPB252P.INF、MPB252
7、P.SYS、MPB252PSet.CPL、MPB252PLIB.DLL 等四個文件;Doc:說明書目錄,本文件即在此目錄下;API:用戶編程接口,包括MPB252PLIB.H、MPB252PLIB.LIB、MPB252PLIB.DLL 等三個文件,適用于Microsoft Visual C+;Demo:使用本卡進行發(fā)送與接收的例子程序。3.2 安安裝裝 設設備備驅驅動動程程序序以下操作均在硬件安裝完成后進行。 3.2.1 第第一一次次安安裝裝若為第一次安裝, Windows 2000 系統(tǒng)啟動后,將自動檢測到新的硬件,出現(xiàn)找到新的硬件向導界面:單擊 “下一步 ” ,將出現(xiàn)如下界面:單擊 “下一
8、步 ” ,將出現(xiàn)如下界面:在廠商文件復制來源中鍵入驅動程序所在的位置,如在軟盤中鍵入“A:”后,單擊 “確認 ”按鈕,出現(xiàn)如下界面:選擇 MPB252P.INF,單擊 “打開 ”按鈕,出現(xiàn)如下界面:單擊 “下一步 ” , ,出現(xiàn)如下界面:表明系統(tǒng)已找到了MPB252P 設備驅動程序,單擊“完成 ” ,系統(tǒng)安裝驅動程序過程中出現(xiàn)如下界面,安裝完畢后消失,完成安裝。驅動程序安裝結束后,安裝的文件如下:MPB252P.INF:Windows 2000 安裝文件,位于Systems32目錄下;MPB252P.SYS:Windows 2000 設備驅動程序,位于Systems32Drivers 目錄下;
9、MPB252PSet.CPL:Windows 2000 控制面板設置程序,位于Systems32 目錄下;MPB252PLIB.DLL:動態(tài)連接庫,位于Systems32 目錄下。3.2.2 多多塊塊卡卡的的安安裝裝如果有多塊 MPB252P 卡,或在新的槽位插入MPB252P 卡后,系統(tǒng)將搜索設備驅動并自動完成安裝。3.3 卸卸載載設設備備驅驅動動程程序序當需要卸載 MPB252P 卡的設備驅動程序時,選擇“開始 設置 控制面板 ” ,雙擊 “系統(tǒng) ” ,選擇 “硬件 ” ,單擊 “設備管理器 ” ,進入設備管理器界面。雙擊 “MPB252P”根設備并展開,選擇“MPB252P 同步通訊適配
10、器” ,單擊鼠標右鍵,在彈出菜單中選擇“卸載 (U)” ,并在隨后出現(xiàn)的確認設備刪除界面中,選擇“確定 ”后刪除。若要徹底刪除該設備,可按以下步驟進行:控制面板添加 /刪除硬件 卸載 /拔掉設備 卸載設備 (永久卸載某設備及其驅動程序)選擇“顯示隱藏設備 ”選擇 “MPB252P 同步通訊適配器 ”選擇 “是,想刪除此設備 ” 。如有多塊 MPB252P 卡需要刪除,重復上述操作即可。4 物物理理接接口口:4.1 RS-422 模模式式在 RS-422 模式,所有信號符合平衡的V.11 規(guī)范。下表列出串行信號的詳細說明:信號驅動器/接收器模式終端類型信號類型TXDV.11無差分RXDV.11V
11、.11差分TXC(接收器)V.11V.11差分TXC(驅動器)V.11無差分RXCV.11V.11差分在RS-422模式下,板上的輸出選擇跳線必須在打打開開 狀態(tài)。4.2 RS-485 模模式式在 RS-485 模式,所有信號符合平衡的V.11 規(guī)范。下表列出串行信號的詳細說明:信號驅動器/接收器模式終端類型信號類型DATAV.11V.11差分CLKV.11V.11差分在RS-485模式下,對應通道的輸出選擇跳線必須在短短接接 狀態(tài)。4.3 高高阻阻態(tài)態(tài)模模式式下表列出在高阻態(tài)模式下串行信號的詳細說明:信號驅動器/接收器模式終端類型信號類型TXD高阻態(tài)V.11RXD高阻態(tài)V.11TXC(接收器
12、)高阻態(tài)V.11TXC(驅動器)高阻態(tài)V.11RXC高阻態(tài)V.114.4 數(shù)數(shù)字字量量輸輸入入和和輸輸出出MPB252P 每端口為用戶提供2 路帶光電隔離數(shù)字量輸入。數(shù)字量輸入的電壓范圍為15V-26V(工作電流為10 毫安)。4.5 波波特特率率選選擇擇MPB252P 為用戶提供了豐富靈活的串行時鐘選擇和數(shù)據(jù)恢復方案。波特率受用戶特定條件的限制,這些條件包括通訊協(xié)議、時鐘源、時鐘模式和物理接口模式。另外,這里給出的最大波特率并沒有考慮外部因素的影響,如電纜的長度、阻抗、品質和對方終端等情況。使用外部時鐘時:通訊協(xié)議物理接口最大波特率RS-42210.0M同步RS-48510.0MRS-422
13、821.6K異步RS-485821.6K使用 20.0000MHz或其他頻率自備晶振時:通訊協(xié)議物理接口最大波特率RS-4222.0M同步RS-4852.0MRS-4222.0M異步RS-4852.0M4.6 LED 指指示示燈燈MPB252P 卡上共有 4 個 LED 燈,分別指示各路的發(fā)送和接收狀態(tài)。下表為 4 個 LED 指示燈與各路的對應關系:指示狀態(tài)發(fā)送1接收1發(fā)送2接收2LEDLED4LED3LED2LED15 MPB252P 軟軟件件設設置置程程序序Windows2000 下安裝驅動程序后,在控制面板中將出現(xiàn)“MPB252P Setup”的圖標,雙擊該圖標,進入設置界面。設置程序
14、自動檢測MPB252P 卡,并將檢測到的信息列在“MPB252P 卡/端口 ”中,卡號從 0 開始,每塊卡的端口號分別為0,1。選擇不同的卡和端口,對該端口的參數(shù)進行編輯。5.1 板板上上時時鐘鐘頻頻率率MPB252P 卡上的時鐘來自晶體振蕩器,該晶體振蕩器根據(jù)需要可以使用不同的頻率,本批板卡晶體振蕩器的頻率為20MHz。5.2 通通信信協(xié)協(xié)議議選擇 MPB252P 某一端口的主通信協(xié)議,MPB252P 卡硬體部分鏈路層支持 HDLC/SDLC(包括自動模式、地址模式、通明模式、PPP模式等)、BISYNC、ASYNC 等協(xié)議,目前的驅動程序支持其中的常用協(xié)議,包括 HDLC 透明模式、 HD
15、LC/PPP 模式(按位同步PPP、字節(jié)同步 PPP、異步字符 PPP) 、ASYNC 模式。5.2.1 HDLC 透透明明模模式式HDLC 透明模式實現(xiàn)HDLC 協(xié)議的標準鏈路層部分,具有以下功能: 幀間空閑標志檢測與傳輸:空閑字符為0 x7E; “0 插入 /刪除機制 ”:發(fā)送時, 5 個連續(xù)的 1 后面自動插入“0” ,接收時, 5 個連續(xù)的 1 后面的 “0”被刪除; CRC 自動生成與檢測: CRC-CCITT 格式,生成多項式為X16+X12+X5+1; 透明傳輸,所有幀內字節(jié)(包括地址域、控制域)都當作數(shù)據(jù)看待。5.2.2 HDLC/PPP 模模式式PPP 模式是 HDLC 協(xié)議
16、的子模式,包括面向比特的位同步 PPP 模式、 面向字節(jié)連接 的八位同步 PPP 模式、異步字符的PPP 模式等三種子模式。5.2.2.1 按按位位同同步步 PPP面向比特的按位同步PPP 傳輸協(xié)議與 HDLC 透明傳輸基本相同,區(qū)別僅僅在于 異常結束 (Abort)字符 不同, HDLC 使用 7 個連續(xù)的 “1”作為失效字符 ,而 按位同步 PPP 使用 15 個連續(xù)的 “1”作為失效字符。5.2.2.2 字字節(jié)節(jié)同同步步 PPP面向字符的 8 位字節(jié)同步 PPP 傳輸協(xié)議與 HDLC 透明傳輸大部分相同,區(qū)別如下:字節(jié)同步 PPP 不執(zhí)行 “0 插入 /刪除機制 ”機制;標志數(shù)據(jù)標志數(shù)據(jù)
17、用戶數(shù)據(jù)CRC-CCITTHDLC 幀格式字節(jié)同步 PPP 執(zhí)行 “數(shù)據(jù)透明(或字符轉移) ”機制。“數(shù)數(shù)據(jù)據(jù)透透明明(或或字字符符轉轉移移) ”機機制制當傳輸二進制數(shù)據(jù)或文件時,很容易碰到MODEM 控制字符(如CTRL-Q、CTRL-S 等) ,MODEM 不傳輸這些字符, MPB252P 使用“數(shù)數(shù)據(jù)據(jù)透透明明(或或字字符符轉轉移移) ”機制來解決這個問題,具體方法如下:MPB252P 每個端口定義了一組“MODEM 控制字符 ” ,包括0 x000 x1F 共 32 個可選擇字符和4 個自定義字符。當傳輸數(shù)據(jù)中出現(xiàn)這些字符時,MPB252P 發(fā)送器在該字符前插入“control-esc
18、ape”字符 0 x7D,在 0 x7D 后該字符將第5 位反相后傳輸。(例如 0 x13H 將轉移為 0 x7D、0 x33)接收時,“control-escape”字符 0 x7D 將被丟棄,其后的字符第5 位反相以恢復原始字符。 (如接收到上述0 x7D、0 x33 后, 0 x7D 被丟棄, 0 x33 第 5 位反相后得到0 x13)“control-escape”字符 0 x7D 和傳輸空閑字符0 x7E 自動進行數(shù)據(jù)轉移。所有可以做 “字符轉移 ”的字符包括:0 x7D、0 x7E;0 x000 x1F 被選中的字符;4 個自定義字符。例如,當選擇0 x13 和自定義 0 x20
19、 做“字符轉移 ”時,傳輸與接收序列如下:5.2.2.3 異異步步字字符符 PPP面向字符的異步字符PPP 傳輸協(xié)議與字節(jié)同步PPP 基本相同,但傳輸13H01H20H4AHPPP 幀7DH33H01H7DH00H4AH字符轉移接收13H01H20H4AH字符恢復是對每個 8 位字節(jié)轉換為異步字符(1 個起始位、 8 個數(shù)據(jù)位、 1 個停止位)后傳輸。接收時,將異步字符轉換為8 位的字節(jié)。異步字符PPP 同樣執(zhí)行 “數(shù)據(jù)透明(或字符轉移) ”機制。5.2.3 ASYNC 模模式式 可選字符長度58 位; 奇偶校驗生成與檢測; 1 或 2 個停止位。5.3 物物理理接接口口與與發(fā)發(fā)送送時時鐘鐘發(fā)
20、發(fā)送送時時鐘鐘 工作在 HDLC 協(xié)議時, MPB104 的發(fā)送時鐘既可以用內部時鐘,也可以使用外部時鐘(如同步MODEM 提供的時鐘)。 內部時鐘模式分為同步內時鐘和異步內時鐘兩種方式,采用同步內時鐘方式時,不管發(fā)送管腳TxD 有無數(shù)據(jù),該時鐘一直在TxC 管腳輸出;采用異步內時鐘方式時,只有發(fā)送管腳TxD 有數(shù)據(jù)時, TxC 管腳才有時鐘信號輸出,否則為低電平。 5.4 通通信信速速率率 設置端口的通信波特率,范圍見4.6。 5.5 物物理理接接口口 選擇外部接口模式,包括RS232、RS422、RS530A、V.35,或禁止該端口,信號模式詳見4.1-4.5工作在 HDLC 協(xié)議時, M
21、PB252P 的發(fā)送時鐘既可以用內部時鐘,也可以使用外部時鐘(如同步MODEM 提供的時鐘)。5.4 通通信信速速率率設置端口的通信波特率,范圍見4.6。5.5 發(fā)發(fā)送送 CRC設置發(fā)送和接收CRC 發(fā)生器的初值,可選擇0 xFFFF(絕大多數(shù)HDLC 應用的缺省值)或0 x0000,也可以選擇 “禁止自動生成 ” ,用于用戶軟件產生的CRC 測試。5.6 空空閑閑信信號號選擇發(fā)送信號的幀間隔方式,可選擇0 x7E(01111110)或連續(xù)的 ”1”即 0 xFF(11111111) 。5.7 PPP 協(xié)協(xié)議議 MODEM 控控制制字字符符設設置置控制字符的含義參見5.2.2.2 節(jié)。支持 0
22、 x000 x1F 共 32 個固定字節(jié)及4 個自定義字節(jié)(范圍為0 x000 xFF) 。5.8 ASYNC 模模式式設設置置選擇 ASYNC 異步通信協(xié)議時,設置通信的字符長度(8 位、 7 位、6 位、 5 位) 、校驗方式(無校驗、奇校驗、偶校驗)和停止位長度(1 位或 2 位) ,起始位為 1 位。5.9 發(fā)發(fā)送送與與接接收收緩緩沖沖區(qū)區(qū)模模式式每塊 MPB252P 卡驅動程序中具有512K 字節(jié)內緩沖區(qū),每端口128K 字節(jié),分別為發(fā)送64K 字節(jié)、接收 64K 字節(jié),可設置成六種不同的幀緩沖區(qū)結構: 16 幀緩沖 /每幀最大 4096 字節(jié); 32 幀緩沖 /每幀最大 2048
23、字節(jié); 64 幀緩沖 /每幀最大 1024 字節(jié);128 幀緩沖 /每幀最大 512 字節(jié);256 幀緩沖 /每幀最大 256 字節(jié);512 幀緩沖 /每幀最大 128 字節(jié)。6 API 函函數(shù)數(shù)說說明明6.1 端端口口打打開開函函數(shù)數(shù)C 語語言言語語法法: int mp_open(int nCard)功功能能 :打開 MPB252P 適配卡函數(shù)。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07。返返回回 :=0:已打開的端口號;1:表示不支持的卡號,卡號范圍為07;2:表示文件打開失敗,使用GetLastError
24、得到具體錯誤碼。說說明明 :如果打開成功,則返回卡號;打開失敗返回值為負數(shù)。對 MPB252P 適配卡操作前,必須使用mp_open 函數(shù)打開該卡;當不再操作時,使用mp_ close 函數(shù)關閉已打開的MPB252P 適配卡。代代碼碼示示例例 :下面的代碼打開第一塊卡。if(err=mp_open(0)=0) else printf(“mp_open error!code=%d”,err);6.2 端端口口關關閉閉函函數(shù)數(shù)C 語語言言語語法法: int mp_close(int nCard)功功能能 :關閉 MPB252P 適配卡函數(shù)。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡,
25、1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07。返返回回 : 0:關閉成功;1:表示不支持的卡號,卡號范圍為07。說說明明 :如果關閉成功則返回0,關閉失敗返回值為負數(shù)。當不再對已打開的MPB252P 適配卡操作時,使用mp_ close函數(shù)關閉已打開的MPB252P 適配卡。代代碼碼示示例例 :下面的代碼打開第一塊卡,操作結束后關閉它。mp_open(0);mp_close(0);6.3 端端口口發(fā)發(fā)送送函函數(shù)數(shù)C 語語言言語語法法:int mp_write(int nCard,int nPort,BYTE* pBuffer,int nLength)功功能能 :向 MPB
26、252P 適配卡指定端口發(fā)送數(shù)據(jù)函數(shù)。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07;nPort:0 序端口號, 0 表示第一個端口, 1 表示第二個端口;pBuffer:要發(fā)送的數(shù)據(jù)緩沖區(qū)指針,最大緩沖區(qū)根據(jù)設定的緩沖區(qū)模式(參見 5.10 發(fā)送與接收緩沖區(qū)模式)長度分別為4096、2048、1024、512、256、128 字節(jié);nLength:發(fā)送緩沖區(qū)長度,最大緩沖區(qū)長度根據(jù)設定的緩沖區(qū)模式,分別為 4096、2048、1024、512、256、128 字節(jié)。 返返回回 :0:已發(fā)送的數(shù)據(jù)長度; 0:當前發(fā)送
27、端口忙,數(shù)據(jù)已保存到發(fā)送緩沖區(qū),等待端口不忙時自動發(fā)送;1:表示不支持的卡號,卡號范圍為07;2:表示不支持的端口號,端口號的范圍為01;3:表示指定的MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡;4:表示指定的端口已設置為禁止;5:表示發(fā)送長度超過限制,最大緩沖區(qū)長度根據(jù)設定的緩沖區(qū)模式,分別為 4096、2048、1024、512、256、128 字節(jié)。說說明明 :如果發(fā)送成功則返回發(fā)送長度,否則返回值為負數(shù)。另一種情況返回零值:指定的發(fā)送端口正在發(fā)送數(shù)據(jù),新的數(shù)據(jù)被存放到發(fā)送緩沖區(qū)排隊,緩沖區(qū)內的數(shù)據(jù)按順序自動發(fā)送。代代碼碼示示例例 :下面的代碼打開第一塊卡,向第
28、一個端口發(fā)送100 字節(jié)的數(shù)據(jù),操作結束后關閉該卡。BYTE pBuf1024;mp_open(0);mp_write(0,0,pBuf,100);mp_close(0);6.4 查查詢詢端端口口接接收收長長度度函函數(shù)數(shù)C 語語言言語語法法: int mp_length(int nCard,int nPort)功功能能 :查詢指定 MPB252P 卡的指定端口接收緩沖區(qū)長度函數(shù)。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07;nPort:0 序端口號, 0 表示第一個端口, 1 表示第二個端口。返返回回 : 0:已接
29、收數(shù)據(jù)長度,等待讀取; 0:當前緩沖區(qū)無數(shù)據(jù);1:表示不支持的卡號,卡號范圍為07;2:表示不支持的端口號,端口號的范圍為01;3:表示指定的MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡;4:表示指定的端口已設置為禁止。說說明明 :如果成功則返回端口接收緩沖區(qū)目前已接收數(shù)據(jù)幀的長度(0 表示無接收數(shù)據(jù) ),否則返回值為負數(shù)。當應用程序讀取較慢時,接收數(shù)據(jù)根據(jù)設置的緩沖區(qū)模式,接收數(shù)據(jù)將存放到接收緩沖區(qū)區(qū)內排隊,等待應用程序讀取。代代碼碼示示例例 :下面的代碼打開第一塊卡,并查詢第一個端口的接收緩沖區(qū)數(shù)據(jù)幀長度,操作結束后關閉該卡。mp_open(0);len=mp_le
30、ngth(0,0);mp_close(0);6.5 端端口口接接收收函函數(shù)數(shù)C 語語言言語語法法:int mp_read(int nCard,int nPort,BYTE* pBuffer,int nBufLen)功功能能 :接收指定 MPB252P 卡的指定端口數(shù)據(jù)函數(shù)。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07;nPort:0 序端口號, 0 表示第一個端口, 1 表示第二個端口;pBuffer:接收數(shù)據(jù)指針。nBufLen:接收緩沖區(qū)長度。返返回回 :0:接收數(shù)據(jù)幀的長度; 0:無接收數(shù)據(jù);1:表示不支持的
31、卡號,卡號范圍為07;2:表示不支持的端口號,端口號的范圍為01;3:表示指定的MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡。4:表示指定的端口已設置為禁止。說說明明 :如果接收成功返回接收數(shù)據(jù)幀的長度(0 表示無接收數(shù)據(jù) ),否則返回值為負數(shù)。注注意意:MPB252P 卡接收到的數(shù)據(jù)最后一個字節(jié)為附加的狀態(tài)字節(jié),其D7位為幀有效位( D7=1,表示該幀有效; D7=0,表示該幀無效) ,D5位為 CRC 校驗正確標志位( D5=1,表示 CRC 校驗正確; D5=0,表示 CRC 校驗錯誤)。有效的、 CRC 校驗正確的幀,其狀態(tài)字節(jié)為0 xA0。狀態(tài)字節(jié)的內容數(shù)據(jù)位
32、數(shù)據(jù)位D7D6D5D4D3D2D1D0含義含義幀有效位保留CRC 校驗標志位保留代代碼碼示示例例 :下面的代碼打開第一塊卡,并查詢第一個端口的接收緩沖區(qū)數(shù)據(jù)幀長度,如果有數(shù)據(jù),將數(shù)據(jù)接收到用戶分配的緩沖區(qū)中,操作結束后關閉該卡。int nLen,nRecvLen;BYTE pBuf1024;mp_open(0);nLen=mp_length(0,0);if(len0) nRecvLen = mp_read(0,0,pBuf,1024);mp_close(0);6.6 等等待待所所有有端端口口接接收收事事件件函函數(shù)數(shù)C 語語言言語語法法: int mp_waitrecv(unsigned int
33、 unMilliseconds)功功能能 :等待安裝的所有端口的接收事件函數(shù)。輸輸入入 :unMilliseconds:等待的超時時間 (ms),INFINITE 表示一直等待,直到任意端口有接收事件產生。返返回回 :=0:總端口號;6:無接收數(shù)據(jù)。說說明明 :mp_waitrecv 函數(shù)等待所有端口的數(shù)據(jù)接收,如果有一個端口有接收數(shù)據(jù),則返回該端口號與卡號計算出的總端口號,總端口號與卡號和端口號的對應關系如下:總端口號卡號X 2+端口號例如卡 0 端口 1 的總端口號為0X2+1=1,卡 1 端口 0 的總端口號為1X2+0=2,等等。當多個端口有接收數(shù)據(jù)幀時,返回其中的最小端口序號,再使用
34、 mp_length 函數(shù)確認是哪些端口有接收數(shù)據(jù)。所有端口均無接收數(shù)據(jù)時,返回 6。代代碼碼示示例例 :為提高應用程序的效率,MPB252P 卡提供事件方式的接收支持,當 MPB252P 的某端口接收到完整的數(shù)據(jù)幀時,產生同步事件通知應用程序,應用通過調用mp_waitrecv 函數(shù)來等待接收。下面的代碼打開第一塊卡,并在50ms 內等待端口接收數(shù)據(jù),如果有數(shù)據(jù),則查詢端口接收長度并接收數(shù)據(jù),操作結束后關閉該卡。int i,nPort;BYTE pBuf1024;mp_open(0);if(nPort=mp_waitrecv(50)-1) for(i=nPort%4;i0) mp_read(
35、0,i,pBuf);mp_close(0);6.7 等等待待指指定定板板卡卡接接收收事事件件函函數(shù)數(shù)C 語語言言語語法法: int mp_waitrecv(int nCard,unsigned int unMilliseconds)功功能能 :等待指定板卡2 個端口的接收事件函數(shù)。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07;unMilliseconds:等待的超時時間 (ms),INFINITE 表示一直等待,直到指定板卡有接收事件產生。返返回回 :=0:接收端口號;1:表示不支持的卡號,卡號范圍為07;3: 表
36、示指定的 MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡。6:表示所有端口均無接收數(shù)據(jù)。說說明明 :mp_waitrecv 函數(shù)等待指定板卡端口的數(shù)據(jù)接收,如果有一個端口有接收數(shù)據(jù),則返回該端口號。當多個端口有接收數(shù)據(jù)幀時,返回其中的最小端口序號,可使用mp_length 函數(shù)確認大于該端口號的其它端口是否有接收數(shù)據(jù),或再次使用mp_waitrecv 函數(shù)。代代碼碼示示例例 :為提高應用程序的效率,MPB252P 卡提供事件方式的接收支持,當 MPB252P 的某端口接收到完整的數(shù)據(jù)幀時,產生同步事件通知應用程序,應用通過調用mp_waitrecv 函數(shù)來等待接收。下面的
37、代碼打開第一塊卡,并在50ms 內等待端口接收數(shù)據(jù),如果有數(shù)據(jù),則查詢端口接收長度并接收數(shù)據(jù),操作結束后關閉該卡。int i,nPort;BYTE pBuf1024;mp_open(0);if(nPort=mp_waitrecv(0,50)-1) for(i=nPort;i0) mp_read(0,i,pBuf);mp_close(0);6.8 等等待待指指定定端端口口接接收收事事件件函函數(shù)數(shù)C C 語語言言語語法法:int mp_waitrecv(int nCard,int nPort,unsigned int unMilliseconds)功功能能 :等待指定端口的接收事件函數(shù)。輸輸入入
38、:nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07;nPort:0 序端口號, 0 表示第一個端口, 1 表示第二個端口;unMilliseconds:等待的超時時間 (ms),INFINITE 表示一直等待,直到指定端口有接收事件產生。返返回回 : 1:指定接收端口有接收數(shù)據(jù); 0:指定端口無接收數(shù)據(jù);1:表示不支持的卡號,卡號范圍為07;2:表示不支持的端口號,端口號的范圍為01;3: 表示指定的 MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡。6:表示所有端口均無接收數(shù)據(jù)。說說明明 :mp_waitre
39、cv 函數(shù)等待指定端口的數(shù)據(jù)接收,如果該端口有接收數(shù)據(jù),則返回 1,否則,返回0。代代碼碼示示例例 :為提高應用程序的效率,MPB252P 卡提供事件方式的接收支持,當 MPB252P 的某端口接收到完整的數(shù)據(jù)幀時,產生同步事件通知應用程序,應用通過調用mp_waitrecv 函數(shù)來等待接收。下面的代碼打開第一塊卡,并在50ms 內等待第一個端口的接收數(shù)據(jù),如果有數(shù)據(jù),則查詢端口接收長度并接收數(shù)據(jù),操作結束后關閉該卡。int i,nPort;BYTE pBuf1024;mp_open(0);if(nPort=mp_waitrecv(0,0,50)=1)if(mp_length(0,0)0) m
40、p_read(0,0,pBuf);mp_close(0);6.9 讀讀取取端端口口狀狀態(tài)態(tài)函函數(shù)數(shù)C 語語言言語語法法: int mp_getstatus(int nCard,PCARDSTATUS pCS)功功能能 :讀取端口狀態(tài)函數(shù)。端口工作狀態(tài)用如下的結構描述:typedef struct tagCARD_STATUS unsigned long int ulSendBusyTotalCount4; unsigned long int ulSendFrameTotalCount4; unsigned long int ulRecvFullTotalCount4; unsigned lon
41、g int ulRecvFrameTotalCount4; unsigned long int ulRecvOverflowCount4;CARDSTATUS,*PCARDSTATUS;其中: ulSendBusyTotalCount:設備發(fā)送忙計數(shù);ulSendFrameTotalCount:端口發(fā)送幀計數(shù);ulRecvFullTotalCount:端口接收忙 (應用程序未及時從緩沖區(qū)讀走數(shù)據(jù) )計數(shù);ulRecvFrameTotalCount:端口接收幀計數(shù);ulRecvOverflowCount:端口接收溢出錯誤,如數(shù)據(jù)超長等。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1
42、 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07;pCS:端口狀態(tài)結構指針,需要由用戶分配存儲空間。返返回回 : 0:表示狀態(tài)讀取成功;1:表示不支持的卡號,卡號范圍為07;3: 表示指定的 MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡。說說明明 :如果讀取成功,則返回0,并將端口工作狀態(tài)填充到pCS 中;讀取失敗返回值為 -1。操作結束后,在關閉MPB252P 適配卡前,可以使用mp_getstatus 函數(shù)讀取該卡的端口工作狀態(tài)。代代碼碼示示例例 :下面的代碼打開第一塊卡,操作后讀取端口狀態(tài)。CARDSTATUS cs;mp_open(0);mp_g
43、etstatus(0,&cs);6.10 非非數(shù)數(shù)字字量量函函數(shù)數(shù)錯錯誤誤碼碼說說明明MPB252P API 函數(shù)返回錯誤碼及含義如下:1:表示不支持的卡號,卡號范圍為07;2:表示不支持的端口號,端口號的范圍為02;3:表示指定的MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡。4:表示指定的端口已設置為禁止;5:表示發(fā)送長度超過限制,最大緩沖區(qū)長度根據(jù)設定的緩沖區(qū)模式,分別為 4096、2048、1024、512、256、128 字節(jié);6:表示所有端口均無接收數(shù)據(jù)。6.11 寫寫數(shù)數(shù)字字量量輸輸出出函函數(shù)數(shù)C C 語語言言語語法法: int mp_dout(in
44、t nCardNo,int nPort,BYTE byOutput)功功能能 :寫 MPB252P 卡端口數(shù)字量輸出函數(shù)輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07;nPort:0 序端口號, 0 表示第一個端口, 1 表示第二個端口;byOutput:byOutput 0 輸出數(shù)字量 1 byOutput=0:端口讀入的數(shù)字量-1:卡號非法-2:端口號非法-3:卡未打開-4:路號非法說說明明 :讀取數(shù)字量成功返回值大于等于0,返回值即為讀取的數(shù)字量;讀取數(shù)字量失敗返回值小于0 值,含義見返回說明。代代碼碼示示例例
45、 :下面的代碼打開第一塊卡,并且讀取端口1 的通道 1 的輸入量,操作結束后關閉該卡。mp_open(0);BYTE byData;byData = 0;byData = mp_din(0, 0, 0);mp_close(0);6.13 等等待待所所有有板板卡卡的的數(shù)數(shù)字字量量輸輸入入事事件件函函數(shù)數(shù)C C 語語言言語語法法: int mp_waitdin(unsigned int unMilliseconds)功功能能 :等待所有板卡的數(shù)字量輸入事件函數(shù)輸輸入入 :unMilliseconds:等待的超時時間 (ms),INFINITE 表示一直等待,直到任意端口有數(shù)字量輸入事件產生。返返回
46、回 :=0:總端口號;6:無數(shù)字量數(shù)據(jù)事件。說說明明 :mp_waitdin 函數(shù)等待所有端口的數(shù)據(jù)接收,如果有一個端口有接收數(shù)據(jù),則返回該端口號與卡號計算出的總端口號,總端口號與卡號和端口號的對應關系如下:總端口號卡號X 2+端口號例如卡 0 端口 1 的總端口號為0X2+1=1,卡 1 端口 0 的總端口號為1X2+0=2,等等。當多個端口有輸入量數(shù)據(jù)時,返回其中的最小端口序號,所有端口均無接收數(shù)據(jù)時,返回6。代代碼碼示示例例 :為提高應用程序的效率,MPB252P 卡提供事件方式的接收支持,當 MPB252P 的某端口接收數(shù)字量輸入事件時,產生同步事件通知應用程序,應用通過調用mp_wa
47、itdin 函數(shù)來等待接收。下面的代碼打開第一塊卡,并在50ms 內等待端口輸入量,如果有數(shù)據(jù),則讀取數(shù)字量數(shù)據(jù),操作結束后關閉該卡。int nIndex, nCard, nPort;int i,k;BYTE byData;mp_open(0);nIndex = mp_waitdin(50);if(nIndex 0)nCard = nIndex/2;nPort = nIndex%2;for (i=0;i0)byData = k;mp_close(0);6.14 等等待待指指定定板板卡卡的的數(shù)數(shù)字字量量輸輸入入事事件件函函數(shù)數(shù)C 語語言言語語法法: int mp_waitdin (int nCa
48、rd,unsigned int unMilliseconds)功功能能 :等待指定板卡的數(shù)字量輸入事件函數(shù)。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07;unMilliseconds:等待的超時時間 (ms),INFINITE 表示一直等待,直到指定板卡有接收事件產生。返返回回 :=0:接收端口號;1:表示不支持的卡號,卡號范圍為07;3: 表示指定的 MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡。6:表示所有端口均無數(shù)字量輸入。說說明明 :mp_waitdin 函數(shù)等待指定板卡端口的數(shù)據(jù)接
49、收,如果有一個端口有接收數(shù)據(jù),則返回該端口號。當多個端口有接收數(shù)據(jù)幀時,返回其中的最小端口序號。代代碼碼示示例例 :為提高應用程序的效率,MPB252P 卡提供事件方式的接收支持,當 MPB252P 的某端口接收數(shù)字量輸入事件時,產生同步事件通知應用程序,應用通過調用mp_waitdin 函數(shù)來等待接收。下面的代碼打開第一塊卡,并在50ms 內等待端口輸入量,如果有數(shù)據(jù),則讀取數(shù)字量數(shù)據(jù),操作結束后關閉該卡。int nPort;int i, j,k;BYTE byData;mp_open(0);if (nPort = mp_waitdin(0, 50) = 0)for(i=0;i0)byDat
50、a = k; mp_close(0);6.15 等等待待指指定定端端口口的的數(shù)數(shù)字字量量輸輸入入事事件件函函數(shù)數(shù)C 語語言言語語法法: int mp_waitdin(int nCardNo,int nPort,unsigned int unMilliseconds);功功能能 :等待指定板卡的數(shù)字量輸入事件函數(shù)。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,最多支持8 塊卡, nCard 的有效范圍為07;unMilliseconds:等待的超時時間 (ms),INFINITE 表示一直等待,直到指定板卡有接收事件產生。返返回回 :=0:接收通道號;1:表示不支持
51、的卡號,卡號范圍為07;3: 表示指定的 MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡。6:表示所有端口均無數(shù)字量輸入。說說明明 :mp_waitdin 函數(shù)等待指定板卡端口的數(shù)據(jù)接收,如果有一個端口有接收數(shù)據(jù),則返回該接收通道號。當多個端口有接收數(shù)據(jù)幀時,返回其中的最小端口序號。代代碼碼示示例例 :為提高應用程序的效率,MPB252P 卡提供事件方式的接收支持,當 MPB252P 的某端口接收數(shù)字量輸入事件時,產生同步事件通知應用程序,應用通過調用mp_waitdin 函數(shù)來等待接收。下面的代碼打開第一塊卡,并在50ms 內等待端口輸入量,如果有數(shù)據(jù),則讀取數(shù)字量數(shù)據(jù)
52、,操作結束后關閉該卡。BYTE byData;mp_open(0);if (nPort = mp_waitdin(0, 0,50) = 0)for(i=0;i0)byData = k; mp_close(0);6.16 等等待待指指定定端端口口指指定定路路的的數(shù)數(shù)字字量量輸輸入入事事件件函函數(shù)數(shù)C C 語語言言語語法法:int mp_waitdin(int nCardNo,int nPort,int nChn,unsigned int unMilliseconds);功功能能 :等待指定端口指定路的數(shù)字量輸入事件函數(shù)。輸輸入入 :nCard:0 序卡號, 0 表示第一塊卡, 1 表示第二塊卡,
53、最多支持8 塊卡, nCard 的有效范圍為07;nPort:0 序端口號, 0 表示第一個端口, 1 表示第二個端口;nChn:0 序通道號, 0 表示第一路通道, 1 表示第二個, nChn有效范圍 01;unMilliseconds:等待的超時時間 (ms),INFINITE 表示一直等待,直到指定端口有接收事件產生。返返回回 : =0:接收通道號;1:表示不支持的卡號,卡號范圍為07;3: 表示指定的 MPB252P 卡尚未打開,需要首先使用mp_open 函數(shù)打開該卡。4:路號非法。6:表示所有端口均無數(shù)字量輸入。說說明明 : mp_waitdin 函數(shù)等待指定板卡端口的數(shù)據(jù)接收,如果有一個端口有接收數(shù)據(jù),則返回該接收通道號。當多個端口有接收數(shù)據(jù)幀時,返回其中的最小端
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 愛上processing課程設計
- 爆破技術與理論課程設計
- 焙烤食品制作課程設計
- 濱州地鐵圍擋施工方案
- 泵軸制造工藝課程設計
- 泵站排澇施工方案
- 自動輸液器相關行業(yè)投資規(guī)劃報告
- 比賽計課程設計
- 路面?zhèn)鞲衅飨嚓P行業(yè)投資規(guī)劃報告范本
- 步進電動機課程設計
- 基于項目學習的STEAM課程設計
- 美術概論-課件
- 頭發(fā)頭皮的養(yǎng)護知識講座
- 冠脈支架植入護理查房課件
- 利用人工智能輔助腫瘤診斷的新方法
- 護士對骨質疏松患者的護理與生活指導
- 急性支氣管炎課件護理
- 硫酸銨簡介介紹
- 海洋資源與藥物研究進展-馬瑜璐
- 第五單元寫作《如何突出中心》課件(共26張)語文七年級上冊
- 缺鐵性貧血的藥物治療課件
評論
0/150
提交評論