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| 国产自在线拍| 久久无码av一区二区三区| 国内精品视频| 99久久精品无码专区免费| 在线综合亚洲欧美网站| 人与鲁专区| 色天天综合| 老司机精品久久| 亚洲av无码成人专区| 欧美另类第一页| 亚洲精品无码不卡在线播放| 国产草草影院18成年视频| 国产精品自拍露脸视频| 亚洲综合婷婷激情| 最近最新中文字幕在线第一页| 欧美97色| 亚洲国产午夜精华无码福利| AV在线天堂进入| 久久夜夜视频| 久久一级电影| 国产成人免费手机在线观看视频| 久久人体视频| 亚洲综合第一页| 91网在线| 黄色在线网| 99热这里只有精品久久免费| 国产中文在线亚洲精品官网| 日韩精品高清自在线| 日韩精品视频久久| 日韩精品无码免费一区二区三区| 免费视频在线2021入口| 丰满人妻中出白浆| 国产成人精品男人的天堂下载| 91视频首页| 欧美性精品不卡在线观看| 国产一级α片| 99久久这里只精品麻豆| 全午夜免费一级毛片| 国产成人精品亚洲77美色| 国产午夜看片| 久久青草精品一区二区三区| 中文精品久久久久国产网址 | 久青草国产高清在线视频| 国产特一级毛片| 日韩东京热无码人妻| 亚洲午夜福利在线| 国产一级视频久久| 国产麻豆精品手机在线观看| 自拍中文字幕| 2021无码专区人妻系列日韩| 人人91人人澡人人妻人人爽| 波多野结衣国产精品| 18禁黄无遮挡免费动漫网站| 美女被操黄色视频网站| 国产迷奸在线看| 最新亚洲av女人的天堂| 国产真实乱人视频| 香蕉伊思人视频| 国产第八页| 精品精品国产高清A毛片| 亚洲无码不卡网| 日韩区欧美国产区在线观看| 黄色不卡视频| 中文字幕久久亚洲一区| 亚洲天堂网在线观看视频| 国产精品一区在线观看你懂的| 久久男人视频| 欧美性爱精品一区二区三区| 亚洲国产第一区二区香蕉| 亚洲第一精品福利| 色噜噜狠狠色综合网图区| 日本精品视频一区二区| 国禁国产you女视频网站| 国产乱码精品一区二区三区中文| 免费看a级毛片|