0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)WinCE工控主板對韋根信號的支持

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-04 10:45 ? 次閱讀

Wiegand(韋根)協(xié)議是由摩托羅拉公司定制的一種通訊協(xié)議,它適用于涉及門禁控制系統(tǒng)的讀卡器和卡片的許多特性。韋根數(shù)據(jù)輸出由兩條數(shù)據(jù)線DATA0和DATA1,和公共的信號地GND組成。在沒有數(shù)據(jù)輸出時,DATA0和DATA1都保持高電平(典型為+5V電平),若輸出'0'時,DATA0輸出低脈沖而DATA1保持為高電平,輸出'1'時,DATA1輸出低脈沖而DATA0保持為高。典型的低脈沖寬度為50us,輸出每一bit之前的間隔為1ms(如下圖,實際的信號電平和時序由實際的韋根讀卡器決定)。

韋根協(xié)議包含很多種格式來傳輸串行數(shù)據(jù),英創(chuàng)公司工控主板支持最常用的韋根26 bit和韋根34 bit格式。

韋根26是已經(jīng)廣泛使用的工業(yè)標準,一個“韋根包”有26位數(shù)據(jù),第1位為第1到第13位的偶檢驗,最后1位為第14到第26位的奇校驗。中間24位為數(shù)據(jù)位。

韋根26格式定義

對于韋根34格式,即一個“韋根包”有34位數(shù)據(jù),第1位為第1到第17位的偶檢驗,最后1位為第18到第34位的奇校驗。中間32位為數(shù)據(jù)位。

英創(chuàng)公司在WinCE內(nèi)核中添加了韋根協(xié)議解析的設(shè)備驅(qū)動程序,應(yīng)用程序只需要打開"WIG1:"設(shè)備,然后調(diào)用DeviceIoControl等待驅(qū)動程序返回(調(diào)用DeviceIoControl,應(yīng)用程序會掛起,不會占用CPU資源),當驅(qū)動程序接收到韋根數(shù)據(jù)后,會自動檢查奇偶校驗,然后由DeviceIoControl返回接收情況,可能返回的原因有:

#defineWG_DATA_VALID 0 // 接收到有效的韋根數(shù)據(jù)

#defineWG_PARITY_ERROR 1 // 奇偶校驗錯誤

#defineWG_TIMEOUT 2 // 接收數(shù)據(jù)超時

#defineWG_BIT_LENGTH_ERROR 3 // 不能識別的韋根格式

如果DeviceIoControl返回為0(WG_DATA_VALID),表示接收到有效的韋根數(shù)據(jù),應(yīng)用程序通過ReadFile函數(shù)從驅(qū)動讀取數(shù)據(jù),如果讀回3個字節(jié),表示為韋根 26格式,如果讀回4字節(jié),表示韋根 34格式。ReadFile讀回的數(shù)據(jù)不包含韋根協(xié)議中的頭尾奇偶校驗位,僅為有效的數(shù)據(jù)位。

如果ReadFile函數(shù)返回1個字節(jié),表示接收到韋根讀卡器按鍵信號,驅(qū)動程序目前支持4 bit(16個狀態(tài))的鍵盤信號檢測。

韋根信號需要正確連接到英創(chuàng)工控主板后,驅(qū)動程序才能正常工作,英創(chuàng)各個主板連接韋根信號的定義如下:

ESM680x / ESM335x /
ESM928x / EM335x
EM9280 / EM9281 / EM9287
第一路韋根("WIG1:") Wiegand_DATA0 GPIO14 GPIO26
Wiegand_DATA1 GPIO15 GPIO27
第一路韋根("WIG2:") Wiegand_DATA0 GPIO16
Wiegand_DATA1 GPIO17

如前所述,韋根讀卡器通常輸出5V TTL電平,而英創(chuàng)工控主板的GPIO要求輸入電平不能超過3.3V,所以韋根讀卡器輸出的信號需要經(jīng)過轉(zhuǎn)換后才能與英創(chuàng)主板的GPIO相連。下圖是一個簡單的5V轉(zhuǎn)3.3V的電平轉(zhuǎn)的電路。

下面是應(yīng)用程序讀取第一路韋根信號("WIG1:")的示例代碼:

#include"stdafx.h"

#include

#include

#include

#include"bsp_drivers.h"

#defineWG_DATA_VALID 0

#defineWG_PARITY_ERROR 1

#defineWG_TIMEOUT 2

#defineWG_BIT_LENGTH_ERROR 3

DWORDWaitWiegandEvent(HANDLE hIRQ, DWORD dwTimeout)

{

DWORD dwReturn = 0;

if(!DeviceIoControl(hIRQ, // file handle to the driver

IOCTL_WAIT_FOR_WIG, // I/O control code

&dwTimeout, // in buffer

sizeof(DWORD), // in buffer size

&dwReturn, // out buffer

sizeof(DWORD), // out buffer size

NULL, // pointer to number of bytes returned

NULL)) // ignored (=NULL)

{

dwReturn = WAIT_FAILED;

}

returndwReturn;

}

int_tmain(intargc, _TCHAR* argv[])

{

HANDLE hWIG;

DWORD dwReturn, dwNumberOfBytesRead, i;

BOOL bRet;

BYTE WIGData[4];

printf("Wiegand(26/34) Demo.\r\n");

hWIG = CreateFile(_T("WIG1:"),

GENERIC_READ|GENERIC_WRITE,

FILE_SHARE_READ|FILE_SHARE_WRITE,

NULL,

OPEN_EXISTING,

FILE_FLAG_RANDOM_ACCESS,

NULL);

if(hWIG == INVALID_HANDLE_VALUE)

{

printf("Can not open WIG1:\r\n");

return-1;

}

while(TRUE)

{

dwReturn = WaitWiegandEvent(hWIG, INFINITE);

switch( dwReturn )

{

caseWG_DATA_VALID:

dwNumberOfBytesRead = 0;

bRet = ReadFile(hWIG, WIGData,sizeof(WIGData),

&dwNumberOfBytesRead, NULL);

if(bRet)

{

if(dwNumberOfBytesRead == 3 )

printf("WG26:0x");

elseif(dwNumberOfBytesRead == 4)

printf("WG34:0x");

elseif(dwNumberOfBytesRead == 1)

printf("Key:0x");

for( i = 0; i < dwNumberOfBytesRead; i++)

printf("%x", WIGData[i]);

printf("\r\n");

}

break;

caseWG_PARITY_ERROR:

printf("Parity checking error!\r\n");

break;

caseWG_TIMEOUT:

printf("Timeout!\r\n");

break;

caseWG_BIT_LENGTH_ERROR:

printf("Unsupported bit length!\r\n");

break;

default:;

}

}

CloseHandle(hWIG);

return0;

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3567

    瀏覽量

    89226
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6086

    瀏覽量

    35573
收藏 人收藏

    評論

    相關(guān)推薦

    工業(yè)級主板工控主板的區(qū)別?

    在工業(yè)領(lǐng)域,主板的重要性是被無限放大的。在大型工廠里日夜不停運轉(zhuǎn)的自動化生產(chǎn)線、精準控制的智能電網(wǎng)系統(tǒng)、以及在極端環(huán)境下依然穩(wěn)定采集數(shù)據(jù)的石油勘探設(shè)備,它們背后都依靠著工業(yè)級主板工控主板
    的頭像 發(fā)表于 01-02 10:01 ?110次閱讀

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國教育技術(shù)協(xié)會主辦,教育部教育管理信息中心教育信創(chuàng)實驗室、公安部第三研究所、中國電子工業(yè)標準化技術(shù)協(xié)會信創(chuàng)工委會
    的頭像 發(fā)表于 12-24 09:57 ?194次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國教育技術(shù)協(xié)會主辦,教育信創(chuàng)實驗室、公安部第三研究所、中國電子工業(yè)標準化技術(shù)協(xié)會信
    的頭像 發(fā)表于 12-19 17:02 ?277次閱讀

    國產(chǎn)工控主板有什么優(yōu)勢、特點?

    隨著國產(chǎn)工控主板的發(fā)展,國內(nèi)企業(yè)也在不斷開發(fā)新的工控主板,為了滿足國內(nèi)企業(yè)的發(fā)展需求,一些國產(chǎn)工控主板
    的頭像 發(fā)表于 11-15 10:11 ?176次閱讀

    ?什么是國產(chǎn)工控主板,國產(chǎn)工控主板的特點有哪些?

    什么是國產(chǎn)工控主板呢?國產(chǎn)工控主板是工業(yè)計算機的主板,是一種計算機系統(tǒng)的硬件設(shè)備,是專門為工業(yè)控制場景設(shè)計和生產(chǎn)的電路板。它在國內(nèi)的研發(fā)和制
    的頭像 發(fā)表于 11-07 10:29 ?266次閱讀

    國產(chǎn)工控主板,信創(chuàng)產(chǎn)業(yè)發(fā)展新引擎

    在當今科技飛速發(fā)展的時代,信創(chuàng)產(chǎn)業(yè)正成為國家戰(zhàn)略的重要支撐。而我們的國產(chǎn)工控主板,以其卓越的性能和可靠的品質(zhì),為信創(chuàng)產(chǎn)業(yè)的發(fā)展注入強大動力。國產(chǎn)工控
    的頭像 發(fā)表于 11-06 10:29 ?299次閱讀

    中科創(chuàng)達榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達憑借非凡的技術(shù)實力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競爭力百強企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?548次閱讀

    工控主板有哪些特點?

    動、防塵防水等設(shè)計,能夠適應(yīng)工業(yè)場景中的各種惡劣條件,具有較長的使用壽命。 ?擴展性:工控主板通常具有豐富的擴展接口,可以方便地連接各種工業(yè)設(shè)備和傳感器,滿足不同工業(yè)控制需求。 工業(yè)標準支持
    的頭像 發(fā)表于 10-10 08:55 ?389次閱讀

    創(chuàng)國產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡稱,于2016年“信創(chuàng)工委會”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會)提出,目的就是要推動我們國內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?495次閱讀

    淺析安卓工控主板的優(yōu)勢

    安卓工控主板作為專為工業(yè)控制領(lǐng)域設(shè)計的硬件平臺,相較于普通商用主板,擁有諸多優(yōu)勢,以滿足工業(yè)環(huán)境對穩(wěn)定、可靠、長期運行的嚴格要求。以下是安卓工控主板
    的頭像 發(fā)表于 06-27 14:50 ?372次閱讀

    使用工控主板時該注意哪些事項?

    最近大家都在頻繁問一個問題就是工控主板在什么人為情況下容易出現(xiàn)故障,從而造成工控主板的損壞,那今天小編就來講講,我們在使用工控
    的頭像 發(fā)表于 06-05 16:01 ?476次閱讀
    使用<b class='flag-5'>工控</b><b class='flag-5'>主板</b>時該注意哪些事項?

    工控主板容易出現(xiàn)故障的原因有哪些?

    最近大家都在頻繁問一個問題就是工控主板在什么人為情況下容易出現(xiàn)故障,從而造成工控主板的損壞,那今天小編就來講講,我們在使用工控
    的頭像 發(fā)表于 05-17 10:57 ?443次閱讀

    工控主板的性能指標有哪些?

    工控主板是工業(yè)控制領(lǐng)域中的關(guān)鍵組成部分,它承載著工控系統(tǒng)的核心功能。因此,工控主板的性能指標是評估其質(zhì)量和性能的重要標準。本文將介紹
    的頭像 發(fā)表于 05-10 16:27 ?988次閱讀
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>的性能指標有哪些?

    工控主板和普通主板的區(qū)別有哪些

    工控主板和普通主板是兩種在計算機硬件領(lǐng)域中常見的主板類型,它們在設(shè)計、功能和用途上有著明顯的區(qū)別。工控
    的頭像 發(fā)表于 04-25 16:54 ?1416次閱讀
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>和普通<b class='flag-5'>主板</b>的區(qū)別有哪些

    購買工控主板的三大誤區(qū)

    最近有很多人問我什么樣的工控主板算好的,有沒有一個統(tǒng)一的標準。工控主板作為整機的核心組成部分,在性能穩(wěn)定上有著至關(guān)重要的作用,那今天小編就來給大家講解一下在購買
    的頭像 發(fā)表于 04-16 16:40 ?392次閱讀