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控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: 26uuu国产精品视频| 亚洲三级视频在线观看| 在线欧美日韩国产| 手机在线国产精品| 国产第八页| 欧美亚洲日韩中文| 中文天堂在线视频| 免费视频在线2021入口| 日韩精品无码免费一区二区三区 | 欧美激情视频二区三区| 久久精品66| 国产精品亚洲专区一区| 亚洲视频免费播放| 亚洲三级影院| 99视频免费观看| 欧美、日韩、国产综合一区| 国产女人18水真多毛片18精品| 国产 日韩 欧美 第二页| 亚洲男人的天堂视频| 久久永久视频| 国产无码精品在线| 国产欧美性爱网| 久久精品亚洲热综合一区二区| 日韩免费中文字幕| 国产在线精品人成导航| 91啦中文字幕| 免费观看成人久久网免费观看| 日韩国产欧美精品在线| 91久久偷偷做嫩草影院免费看| 国产性生大片免费观看性欧美| 米奇精品一区二区三区| 性欧美久久| 在线观看91精品国产剧情免费| 玖玖免费视频在线观看| 日韩毛片视频| 午夜欧美理论2019理论| 高清无码手机在线观看| 一本久道热中字伊人| 欧美精品导航| 久久亚洲国产一区二区| 欧美一区二区福利视频| 伊人天堂网| 久久中文无码精品| 日韩小视频在线观看| 国产在线观看高清不卡| 国产精品分类视频分类一区| 国产精品自拍露脸视频| 亚洲天堂网在线观看视频| 国产毛片基地| 免费女人18毛片a级毛片视频| 亚洲精品男人天堂| 亚洲永久色| 强奷白丝美女在线观看| 婷婷六月综合网| 婷婷综合在线观看丁香| 天天婬欲婬香婬色婬视频播放| 青草免费在线观看| 欧洲欧美人成免费全部视频| 亚洲人免费视频| 欧美午夜一区| 成·人免费午夜无码视频在线观看| 亚洲午夜福利在线| 四虎亚洲精品| 国产黄色片在线看| 国产人在线成免费视频| 亚洲欧洲日产国产无码AV| 2020极品精品国产| 五月婷婷导航| 国产区精品高清在线观看| 国产成人亚洲综合A∨在线播放 | 国产精品偷伦视频免费观看国产| 日韩欧美一区在线观看| 亚洲欧洲一区二区三区| 国产福利大秀91| 免费看a毛片| 99成人在线观看| 真实国产精品vr专区| 国产三级精品三级在线观看| 亚洲黄色成人| 国产拍揄自揄精品视频网站| 免费无遮挡AV| 色婷婷色丁香|