999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PT2262解碼并轉換為韋根26信號方法的研究

2014-11-07 11:24:05周一帆陳赤
現(xiàn)代電子技術 2014年21期
關鍵詞:單片機信號

周一帆+陳赤

摘 要: 為了便于編碼芯片PT2262在門禁控制系統(tǒng)領域中的應用,從PT2262與韋根信號的編碼原理和波形特征入手,通過軟硬件結合的方法實現(xiàn)了將PT2262編碼發(fā)射器的無線信號接收并轉換為韋根26信號輸出,并給出了相應的系統(tǒng)框圖、電路原理圖以及單片機程序。測試表明,此方案應用方便,可靠性好,成本較低,具有較高的實用價值。

關鍵字: PT2262; MSP430; 超外差接收模塊; 韋根26信號

中圖分類號: TN911.7?34 文獻標識碼: A 文章編號: 1004?373X(2014)21?0068?05

Research on PT2262 signal decoding and converted to Wiegand?26 signal method

ZHOU Yi?fan, CHEN Chi

(School of Electronic Engineering, Guangxi Normal University, Guilin 541004, China)

Abstract: To facilitate the application of encoding chip PT2262 in the field of entrance guard control system, proceeding from the coding principle and waveform characteristic of PT2262 and Wiegand signal, the reception of the wireless signal from PT2262 encoding transmitter and conversion of the signal into Wiegand signal output were implemented with the method of combining the software and hardware. The corresponding system block diagram, circuit principle diagram and single?chip microcomputer program are given in this paper. The testing results show that the scheme has convenient application, good reliability, low cost and high practical value.

Keywords: PT2262; MSP430; super heterodyne receiver module; Wiegand?26 signal

0 引 言

PT2262/PT2272編解碼芯片用作門禁系統(tǒng)的無線身份識別器時具有容量不足、互換性不強的缺點。為克服此不足,從PT2262編碼發(fā)射的信號特征入手,利用單片機直接對超外差電路接收到的信號進行處理,并將解碼出的PT2262全部編碼信息轉換為韋根26信號輸出,使其便利地應用于各類門禁控制系統(tǒng)中。

1 韋根26通信協(xié)議

韋根26協(xié)議廣泛應用于各類門禁系統(tǒng)中,其波形如圖1所示。韋根數(shù)據(jù)輸出由兩根線組成,DATA0與DATA1[1]。沒有信號輸出時兩根線的電壓為+5 V;當有信號0輸出時, DATA0產(chǎn)生負脈沖;當有信號1輸出時, DATA1產(chǎn)生負脈沖。

韋根26信號的格式為:

E XXXX XXXX XXXX XXXX XXXX XXXX A

E為前12位的偶校驗位,A為后12位的奇校驗位[2]。以上數(shù)據(jù)從左至右順序發(fā)送。高位在前,低位在后。1和0分別從D1OUT,D0OUT以負脈沖的形式輸出。

圖1 韋根信號波形圖

2 PT2262編碼發(fā)射原理

PT2262編碼發(fā)射器原理如圖2所示。

圖2 PT2262編碼發(fā)射器原理框圖

無線編碼輸出信號含有PT2262的地址碼與數(shù)據(jù)碼。每一次發(fā)射至少發(fā)射4組數(shù)據(jù)[3],每組數(shù)據(jù)的長度大約為16 ms,其中包括12位數(shù)據(jù)以及一個長度約為5 ms的同步碼組成;每一位數(shù)據(jù)由兩個脈沖組成,高電平表示為兩個寬脈沖,低電平表示為兩個窄脈沖,懸空表示為一個寬脈沖一個窄脈沖,其輸出波形如圖3所示。根據(jù)其發(fā)射的格式,最多可以發(fā)射531 441種無線信號[4]。用超外差接收模塊接收的話,其接收到的數(shù)據(jù)為24個脈沖組成,可根據(jù)需要對其進行硬件或軟件解碼。

圖3 編碼發(fā)射電路輸出波形圖

3 接收解碼與編碼輸出硬件電路

系統(tǒng)的硬件電路如圖4所示,315 MHz無線超外差接收模塊將無線信號轉換為TTL電平,送由MSP430單片機[5]進行解碼與編碼輸出,LED管用來指示信號是否正常輸出[6]。

圖4 接收解碼與編碼輸出電路

4 單片機程序流程圖

單片機對來自超外差模塊的信號采用中斷接收的方式[7],如圖5所示。

圖5 中斷接收程序流程圖

考慮到接收環(huán)境中的干擾信號會不斷激發(fā)該中斷產(chǎn)生;當有韋根信號輸出時就會受到中斷的干擾,使得輸出變慢,輸出波形變得不連續(xù)[8],可靠性下降。為解決此問題,在輸出韋根信號時,先關閉全局中斷;正確輸出韋根信號之后,再打開全局中斷,如圖6所示。本文將把24個脈沖信號轉換為12位的三進制數(shù)之后再將其轉換為24位二進制數(shù)[9];不足24位的將高位全部補0,得到標準的韋根26信號后將其輸出。

圖6 發(fā)送程序流程圖

5 MSP430單片機的程序

以下為單片機的程序代碼[10]:

#include "io430g2231.h"

#include "in430.h"

#define DELAY 4 //修改韋根信號數(shù)據(jù)間隔時間

unsigned char rev_flag=0; //正確接收信號標志

signed int Count=0; //接收信號數(shù)量

unsigned char dataCom=0; //無線信號接收標志

unsigned long user_id=0; //無線接收碼

unsigned long user_id1=0; //無線接收碼 比較用

signed int ReceiveCount=0; //已接受數(shù)據(jù)數(shù)量

void delay_ms(unsigned int n) //10n個微秒的延時函數(shù)

{

int a,b;

for(a=0;a

{

for(b=0;b<1;b++);

}

}

void delay(unsigned int n) //n個毫秒的延時函數(shù)

{

int a,b;

for(a=0;a

{

for(b=0;b<120;b++);

}

}

void Init(void) //重置

{

Count=0;

dataCom=0;

user_id=0;

user_id1=0;

ReceiveCount=0;

}

void GPIO_Config(void) //配置GPIO

{

P1DIR=BIT0; //設置P0.0為輸出

P1DIR|=BIT6|BIT7;

//設置P0.6和P0.7為輸出,連接DATA0和DATA1

P1DIR&=~BIT4;

//設置P0.4為輸入,連接超外差接收模塊RXD

}

void IOInterrupt_Config(void) //IO中斷配置函數(shù)

{

P1IE|=BIT4; //開啟P1.4的IO中斷

P1IES|=BIT4; //設置P1.4的IO中斷為下降沿觸發(fā)

P1IFG&=~BIT4; //清除P1.4中斷標志位

}

//IO中斷服務函數(shù)

#pragma vector=PORT1_VECTOR

//中斷向量,表示此函數(shù)是P1的中斷服務函數(shù)

__interrupt void IOInterrupt(void)

{

signed int i;

signed int j;

if(P1IFG&BIT4) //D1管腳中斷

{

P1IFG&=~BIT4; //清除中斷標志位

if(dataCom==1) //正在接收數(shù)據(jù)

{

j=0;

while((P1IN&BIT4)==0)

{

delay_ms(1);

j++;

}

if((j>100)|(j<10)) //脈沖長度不符合

{

Init();

}

if((j<100)&(j>30)) //接收長脈沖

{

Count++;

user_id<<=1; //左移一位

user_id|=0x01; //把當前位置1

}

if((j<20)&(j>10)) //接收短脈沖

{

Count++;

user_id<<=1; //把當前位置0

}

if(Count==24) //24個脈沖接收完畢

{

Count=0;

dataCom=0;

ReceiveCount++;

if(ReceiveCount==1)

{

user_id1=user_id;

user_id=0;

}

if(ReceiveCount==2)

{

ReceiveCount=0;

if(user_id1==user_id)

{

user_id1=0;

rev_flag=1;

}

else

{

user_id1=user_id;

user_id=0;

ReceiveCount=1;

}

}

}

if(Count>24) //脈沖數(shù)量不正常

{

Init();

}

}

if(dataCom==0) //確認是否接收數(shù)據(jù)

{

i=0;

while((P1IN&BIT4)==0)

{

delay_ms(1);

i++;

}

if((i>350)&(i<650))

{

dataCom=1;

user_id=0;

}

}

}

}

void SendDATA0(void)

{

P1OUT&=~BIT6; //拉低數(shù)據(jù)線

delay(DELAY); //延時

P1OUT|=BIT6; //拉高數(shù)據(jù)線

}

void SendDATA1(void)

{

P1OUT&=~BIT7; //拉低數(shù)據(jù)線

delay(DELAY); //延時

P1OUT|=BIT7; //拉高數(shù)據(jù)線

}

unsigned long convert(unsigned long userid)

{

unsigned char i;

unsigned char j;

unsigned char k;

signed int number=0;

unsigned long quartic=1;

unsigned long sendid=0;

for(i=12;i>0;i--)

{

for(j=2;j>0;j--)

{

if((userid>>(2*(12-i)+(2-j)))&0x01) //判斷是否為1

{

number++;

}

}

if(number==0)

{

for(k=12;k>i;k--)

{

quartic=quartic*3;

}

sendid=sendid+2*quartic;

quartic=1;

}

if(number==1)

{

for(k=12;k>i;k--)

{

quartic=quartic*3;

}

sendid=sendid+1*quartic;

quartic=1;

}

if(number==2)

{

for(k=12;k>i;k--)

{

quartic=quartic*3;

}

sendid=sendid+0*quartic;

quartic=1;

}

number=0;

}

return sendid;

}

void SendWiegandData(unsigned long userid) //發(fā)送韋根數(shù)據(jù)

{

unsigned char i;

unsigned char start=0; //韋根信號偶校驗位

unsigned char end=0; //韋根信號奇校驗位

signed int Even=0; //前2~13位偶校驗計數(shù)

signed int Odd=0; //后14~25位奇校驗計數(shù)

unsigned long sendid1=convert(userid);

unsigned long sendid2=sendid1;

for(i=24;i>0;i--)

{

if((sendid1>>(i-1))&0x01) //判斷第i-1位是否為1

{

if((i<=24)&(i>=13))

{

Even++;

}

else if((i>=1)&(i<=12))

{

Odd++;

}

}

}

if(Even%2)

{

start=0;

}

else

{

start=1;

}

if(Odd%2)

{

end=1;

}

else

{

end=0;

}

if(start) //判斷偶校驗位

{

SendDATA1(); //發(fā)送D1

}

else

{

SendDATA0(); //發(fā)送D0

}

delay(DELAY);

for(i=24;i>0;i--) //循環(huán)發(fā)送韋根信號

{

if((sendid2>>(i-1))&0x01) //判斷第i-1位是否為1

{

SendDATA1();

}

else

{

SendDATA0();

}

delay(DELAY); //延時

}

if(end) //判斷奇校驗位

{

SendDATA1();

}

else

{

SendDATA0();

}

P1OUT&=~BIT0; //打開ED1

delay(1000); //延時1 s

P1OUT|=BIT0; //關閉ED1

}

int main( void )

{

WDTCTL = WDTPW + WDTHOLD; //關閉看門狗

GPIO_Config(); //配置GPIO

IOInterrupt_Config(); //配置IO中斷

_EINT(); //使能全局中斷

while(1)

{

if(rev_flag) //判斷是否正確接收無線數(shù)據(jù)

{

_DINT(); //關閉全局中斷

rev_flag=0; //清除完成標志

SendWiegandData(user_id); //輸出韋根信號

Init(); //重新初始化

_EINT(); //使能全局中斷

}

}

}

6 結 語

本方案實現(xiàn)的PT2262無線編碼信號到韋根26輸出信號的轉換準確可靠,可以與人臉識別、指紋識別、讀卡機等各種韋根信號輸出設備進行替換,不需要進行任何硬件設備的改變,可方便地應用于各類門禁系統(tǒng)中。

參考文獻

[1] 柴卉,萬振凱.韋根協(xié)議在門禁系統(tǒng)中的應用[J].儀器儀表用戶,2007(5):129?130.

[2] 岳云峰,王睿,孫海濤.韋根(Wiegand)協(xié)議及其應用[J].齊齊哈爾大學學報,2002(2):58?60.

[3] 王曉東.用軟、硬件結合的方法實現(xiàn)對PT2262的解碼[J].山西電子技術,2008(5):41?42.

[4] 何萬庫,潘小飛,劉儒來.基于315MHz無線模塊的智能車輛管理系統(tǒng)[J].數(shù)據(jù)采集與處理,2010(S1):206?208.

[5] 張揚,魏瑩,劉新力,等.PIC、MSP430單片機的比較與分析[J].自動化技術與應用,2007(5):144?146.

[6] 何立民.MCS2?51 單片機應用系統(tǒng)設計[M].北京:航空航天大學出版社,1990.

[7] 梅麗鳳,王艷秋,任國臣,等.單片機原理及接口技術[M].北京:清華大學出版社,2009.

[8] 任曉榮.基于單片機的脈沖信號采集與處理[J].計算機測量與控制,2003(5):59?62.

[9] 康華光,鄒壽彬,秦臻.電子技術基礎(數(shù)電部分)[M].北京:高等教育出版社,2010.

[10] 秦龍.MSP430單片機C語言應用程序設計實例精講[M].北京:電子工業(yè)出版社,2006.

}

else

{

start=1;

}

if(Odd%2)

{

end=1;

}

else

{

end=0;

}

if(start) //判斷偶校驗位

{

SendDATA1(); //發(fā)送D1

}

else

{

SendDATA0(); //發(fā)送D0

}

delay(DELAY);

for(i=24;i>0;i--) //循環(huán)發(fā)送韋根信號

{

if((sendid2>>(i-1))&0x01) //判斷第i-1位是否為1

{

SendDATA1();

}

else

{

SendDATA0();

}

delay(DELAY); //延時

}

if(end) //判斷奇校驗位

{

SendDATA1();

}

else

{

SendDATA0();

}

P1OUT&=~BIT0; //打開ED1

delay(1000); //延時1 s

P1OUT|=BIT0; //關閉ED1

}

int main( void )

{

WDTCTL = WDTPW + WDTHOLD; //關閉看門狗

GPIO_Config(); //配置GPIO

IOInterrupt_Config(); //配置IO中斷

_EINT(); //使能全局中斷

while(1)

{

if(rev_flag) //判斷是否正確接收無線數(shù)據(jù)

{

_DINT(); //關閉全局中斷

rev_flag=0; //清除完成標志

SendWiegandData(user_id); //輸出韋根信號

Init(); //重新初始化

_EINT(); //使能全局中斷

}

}

}

6 結 語

本方案實現(xiàn)的PT2262無線編碼信號到韋根26輸出信號的轉換準確可靠,可以與人臉識別、指紋識別、讀卡機等各種韋根信號輸出設備進行替換,不需要進行任何硬件設備的改變,可方便地應用于各類門禁系統(tǒng)中。

參考文獻

[1] 柴卉,萬振凱.韋根協(xié)議在門禁系統(tǒng)中的應用[J].儀器儀表用戶,2007(5):129?130.

[2] 岳云峰,王睿,孫海濤.韋根(Wiegand)協(xié)議及其應用[J].齊齊哈爾大學學報,2002(2):58?60.

[3] 王曉東.用軟、硬件結合的方法實現(xiàn)對PT2262的解碼[J].山西電子技術,2008(5):41?42.

[4] 何萬庫,潘小飛,劉儒來.基于315MHz無線模塊的智能車輛管理系統(tǒng)[J].數(shù)據(jù)采集與處理,2010(S1):206?208.

[5] 張揚,魏瑩,劉新力,等.PIC、MSP430單片機的比較與分析[J].自動化技術與應用,2007(5):144?146.

[6] 何立民.MCS2?51 單片機應用系統(tǒng)設計[M].北京:航空航天大學出版社,1990.

[7] 梅麗鳳,王艷秋,任國臣,等.單片機原理及接口技術[M].北京:清華大學出版社,2009.

[8] 任曉榮.基于單片機的脈沖信號采集與處理[J].計算機測量與控制,2003(5):59?62.

[9] 康華光,鄒壽彬,秦臻.電子技術基礎(數(shù)電部分)[M].北京:高等教育出版社,2010.

[10] 秦龍.MSP430單片機C語言應用程序設計實例精講[M].北京:電子工業(yè)出版社,2006.

}

else

{

start=1;

}

if(Odd%2)

{

end=1;

}

else

{

end=0;

}

if(start) //判斷偶校驗位

{

SendDATA1(); //發(fā)送D1

}

else

{

SendDATA0(); //發(fā)送D0

}

delay(DELAY);

for(i=24;i>0;i--) //循環(huán)發(fā)送韋根信號

{

if((sendid2>>(i-1))&0x01) //判斷第i-1位是否為1

{

SendDATA1();

}

else

{

SendDATA0();

}

delay(DELAY); //延時

}

if(end) //判斷奇校驗位

{

SendDATA1();

}

else

{

SendDATA0();

}

P1OUT&=~BIT0; //打開ED1

delay(1000); //延時1 s

P1OUT|=BIT0; //關閉ED1

}

int main( void )

{

WDTCTL = WDTPW + WDTHOLD; //關閉看門狗

GPIO_Config(); //配置GPIO

IOInterrupt_Config(); //配置IO中斷

_EINT(); //使能全局中斷

while(1)

{

if(rev_flag) //判斷是否正確接收無線數(shù)據(jù)

{

_DINT(); //關閉全局中斷

rev_flag=0; //清除完成標志

SendWiegandData(user_id); //輸出韋根信號

Init(); //重新初始化

_EINT(); //使能全局中斷

}

}

}

6 結 語

本方案實現(xiàn)的PT2262無線編碼信號到韋根26輸出信號的轉換準確可靠,可以與人臉識別、指紋識別、讀卡機等各種韋根信號輸出設備進行替換,不需要進行任何硬件設備的改變,可方便地應用于各類門禁系統(tǒng)中。

參考文獻

[1] 柴卉,萬振凱.韋根協(xié)議在門禁系統(tǒng)中的應用[J].儀器儀表用戶,2007(5):129?130.

[2] 岳云峰,王睿,孫海濤.韋根(Wiegand)協(xié)議及其應用[J].齊齊哈爾大學學報,2002(2):58?60.

[3] 王曉東.用軟、硬件結合的方法實現(xiàn)對PT2262的解碼[J].山西電子技術,2008(5):41?42.

[4] 何萬庫,潘小飛,劉儒來.基于315MHz無線模塊的智能車輛管理系統(tǒng)[J].數(shù)據(jù)采集與處理,2010(S1):206?208.

[5] 張揚,魏瑩,劉新力,等.PIC、MSP430單片機的比較與分析[J].自動化技術與應用,2007(5):144?146.

[6] 何立民.MCS2?51 單片機應用系統(tǒng)設計[M].北京:航空航天大學出版社,1990.

[7] 梅麗鳳,王艷秋,任國臣,等.單片機原理及接口技術[M].北京:清華大學出版社,2009.

[8] 任曉榮.基于單片機的脈沖信號采集與處理[J].計算機測量與控制,2003(5):59?62.

[9] 康華光,鄒壽彬,秦臻.電子技術基礎(數(shù)電部分)[M].北京:高等教育出版社,2010.

[10] 秦龍.MSP430單片機C語言應用程序設計實例精講[M].北京:電子工業(yè)出版社,2006.

猜你喜歡
單片機信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
基于單片機的SPWM控制逆變器的設計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
孩子停止長個的信號
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機的平衡控制系統(tǒng)設計
電子制作(2017年19期)2017-02-02 07:08:27
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: 色色中文字幕| 91福利免费| 美女潮喷出白浆在线观看视频| 欧美日韩国产系列在线观看| 欧美中文字幕在线二区| 久综合日韩| 亚洲人成色77777在线观看| 日日噜噜夜夜狠狠视频| 久久国产高潮流白浆免费观看| 成人亚洲天堂| 2022精品国偷自产免费观看| 精品无码国产自产野外拍在线| 欧美高清国产| 欧美性精品不卡在线观看| 亚洲高清在线天堂精品| 国产网站在线看| 欧美a级完整在线观看| 国产又粗又猛又爽| 国产午夜看片| 亚洲精品成人福利在线电影| 国产色爱av资源综合区| 国内精品视频在线| 熟女成人国产精品视频| 精品视频第一页| 婷婷色中文网| 高清不卡毛片| 伊人色在线视频| 婷婷综合在线观看丁香| 亚洲色欲色欲www在线观看| 一区二区理伦视频| 又爽又大又黄a级毛片在线视频| 成AV人片一区二区三区久久| 色偷偷一区二区三区| 毛片基地美国正在播放亚洲| 亚洲一级色| 激情综合激情| 亚洲第一黄色网址| 亚洲天天更新| 亚洲狠狠婷婷综合久久久久| 人妻无码AⅤ中文字| 1769国产精品视频免费观看| 午夜久久影院| 国产玖玖视频| 女人18一级毛片免费观看| 99ri精品视频在线观看播放| 91口爆吞精国产对白第三集| 欧美日韩高清在线| 国产欧美网站| 奇米精品一区二区三区在线观看| 国产精品观看视频免费完整版| 无码AV高清毛片中国一级毛片| 成人综合网址| 国产97色在线| 欧美区国产区| 女人18毛片久久| 国产精品熟女亚洲AV麻豆| 久久无码免费束人妻| 国产黄网永久免费| 香蕉久久国产超碰青草| 另类专区亚洲| 国产成人免费手机在线观看视频| 啪啪永久免费av| 欧美日韩精品综合在线一区| 欧美激情综合| 又爽又大又黄a级毛片在线视频 | 国产精品视频系列专区| 午夜在线不卡| 亚洲日韩在线满18点击进入| 国产乱人伦AV在线A| 日韩专区欧美| 久久亚洲日本不卡一区二区| 亚洲成人高清在线观看| 亚洲乱码视频| 欧美精品成人一区二区视频一| 国产日韩精品欧美一区灰| 在线观看国产网址你懂的| 91在线播放免费不卡无毒| 啪啪国产视频| 国产精品亚洲专区一区| 强奷白丝美女在线观看| 免费毛片视频| 日本免费福利视频|