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

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

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

一文詳解AS608指紋識別模塊

CHANBAEK ? 來源:電子應(yīng)用學(xué)習(xí)館 ? 作者:一只會飛的大魚兒 ? 2023-04-14 14:53 ? 次閱讀

一. 簡介

AS608 指紋識別模塊主要是指采用了杭州晟元芯片技術(shù)有限公司(Synochip)的 AS608 指紋識別芯片 而做成的指紋模塊,模塊廠商只是基于該芯片設(shè)計外圍電路,集成一個可供2次開發(fā)的指紋模塊; 所以,只要是基于AS608芯片的指紋模塊,其控制電路及控制協(xié)議幾乎是一樣的,只是廠家和性能不同而已。

二. 硬件原理圖介紹

1.硬件接口

AS608模塊采用8pin的控制接口,供電電壓為3.3V(不能使用5V供電),通信總線有兩種,分別為串口通訊(TX、RX)和USB通訊(D+、D-); 采用串口通訊,編程相對簡單,也是比較常用的一種,但是兼容性不好; 采用USB通訊,編程相對較難,但USB作為最常用的總線接口,有很好的兼容性。

2.控制電路圖

51單片機為例,AS608模塊touch引腳接到單片機的普通IO上,當有指紋按下,該引腳觸發(fā)一個高電平信號; TX、RX引腳分別接到單片機的P30、P31串口引腳上。

注:AS608只能用+3.3V供電,不可用+5V供電。

三. 通訊協(xié)議格式

單片機要實現(xiàn)對AS608指紋模塊的控制,就需要根據(jù)AS608芯片規(guī)定的通訊協(xié)議格式來發(fā)送和處理串口數(shù)據(jù),整個模塊各個功能的實現(xiàn)也是圍繞該協(xié)議格式進行的。

控制指令有三類,指令包、數(shù)據(jù)包、結(jié)束包; 一般指令包是由單片機發(fā)送到模塊上,模塊接收到指令包后,返回對應(yīng)的數(shù)據(jù)包;

  • 指令包主要包括:包頭、芯片地址、包標識、包長度、控制參數(shù)和校驗和;
  • 數(shù)據(jù)包主要包括:包頭、芯片地址、包標識、包長度、數(shù)據(jù)和校驗和 ;
  • 數(shù)據(jù)包與結(jié)束包的區(qū)別在于包標識,02H:數(shù)據(jù)包,且有后續(xù)包。 08H:最后一個數(shù)據(jù)包,即結(jié)束包。

四. 控制程序

以指紋密碼鎖為例,

1.常用控制指令

一般要實現(xiàn)一個指紋密碼鎖的功能,只需用到以下指令:

錄入圖像、生成特征、搜索指紋、自動驗證指紋、自動注冊模板、刪除指紋。

2.錄入指紋

首先要是實現(xiàn)開鎖,需要在系統(tǒng)里面錄入指紋信息,需要:

錄入圖像->生成特征->快速查找圖像->自動注冊模板

(1)錄入圖像指令

(2)生成特征指令

存入指紋圖像,存入單片機給定的緩沖區(qū)號BufferID中;

(3)快速查找圖像

生成圖像后要驗證是否有在Buffer里面;

(4)自動注冊模板

最后將Buffer里面的圖像存入Flash里面

(5)錄入指紋程序

void addfinger()    //錄入指紋
{
  uchar IDa1,IDa2,IDa3;     //指紋圖像存放地址
  LcmClearTXT();
  PutStr(1,2,"請按手指");    
  SFG_getimage();
  while(querenma!=0)       //指令接收不成功,重新發(fā)送
  SFG_getimage();
  SFG_genchar(buffer1ID);
  while(querenma!=0)       //指令接收不成功,重新發(fā)送
  SFG_genchar(buffer1ID);
  UART_Init();
  SFG_fastsearch(buffer1ID);
  while(querenma==1)      //指令接收不成功,重新發(fā)送
  SFG_fastsearch(buffer1ID);
  SBUF = querenma;
  while(TI==0);
  TI=0;
  if(querenma==0)
  {
    LcmClearTXT();
    PutStr(1,1,"該指紋已存儲");
    PutStr(3,0,"  按任意鍵繼續(xù)"); 
      while(Keycan()==0);
  }
  else if(querenma==9)
    {
      LcmClearTXT();
      PutStr(1,1,"請再次按手指");
      SFG_enroll();
      while(querenma==2)
      SFG_enroll();
      LcmClearTXT();
      if(querenma==0)
      { 
        IDa1=PageID/100;IDa2=PageID/10%10;IDa3=PageID%10;
        PutStr(1,1,"指紋采集成功");
        PutStr(2,1,"編號為:");
        WriteCommand(0x8D); 
        WriteData(0x30+IDa1);WriteData(0x30+IDa2);WriteData(0x30+IDa3);
        }
      else if(querenma!=0)
        {
        PutStr(1,1,"指紋采集失敗");
        PutStr(2,1,"請重新操作");
       }
    PutStr(3,0,"  按任意鍵繼續(xù)"); 
      while(Keycan()==0);
       }
  LcmClearTXT();
}

2.自動驗證指紋

錄入指紋后,就可以匹配本人的指紋實現(xiàn)開鎖,只需要發(fā)送自動驗證指紋指令,返回的確認碼為0x00,即為匹配成功,不為0x00即匹配失敗;

(1)錄入指紋指令

(2)自動驗證指紋程序

void shuazhiwen()     //驗證用戶的指紋
{
    uchar IDs1,IDs2,IDs3;   
  LcmClearTXT();
  PutStr(1,1,"請按手指開鎖");      
  SFG_identify();
  while(querenma==2)
  SFG_identify(); 
  if(querenma==0)
   {
    LcmClearTXT();
    PutStr(1,2,"門已打開"); 
    IDs1=PageID/100;
    IDs2=PageID/10%10;
    IDs3=PageID%10;
    PutStr(2,1,"編號為:");
    WriteCommand(0x8D);    //指定第三行顯示位置
    WriteData(0x30+IDs1);
    WriteData(0x30+IDs2);
    WriteData(0x30+IDs3);
    jidianqi=0;
    delay(2500); 
    jidianqi=1;  
  }
     else if(querenma==9)
     {
      LcmClearTXT();
      PutStr(1,1,"沒搜索到指紋");
      PutStr(2,1,"請重新按手指");
    }
       else 
    {
      LcmClearTXT();
      PutStr(1,1,"接收包出錯");
    }
    delay(2000);
   //   while(Keycan()==0);
}

3.刪除指紋

管理員如果需要刪除系統(tǒng)中錄入的指定指紋信息,需要寫入刪除所要刪除指紋的ID號,然后發(fā)送刪除指紋指令即可刪除相應(yīng)的指紋。

(1)刪除指紋指令

(2)刪除指紋程序

void deletfinger()
{
  uchar i,j=0;
  LcmClearTXT();
  PutStr(1,0,"輸入刪去的指紋號");
  for(i=0;i<5;i++)dz[i]=0;  
     Key=Keycan();
     while(Key!=queren)      //按鍵錄入用戶需要刪除的指紋號
     {
       Key=Keycan();
       KeyDeal(Key);
       delay(30);                                      //按鍵有抖動@@@
       if(Key==0)K=10;
       if((K>=0)&&(K<=9))
       {
        dz[j]=K;
      if(j<3)
      {  
        WriteCommand(0x88+j);    //指定第三行顯示位置
        WriteData(0x30+dz[j]);  
      }
        ++j;
      if(j==4)
        j=3;                           //@@#yinhuang
       }   //顯示LCD12864并行顯示 
     if(K==34)    //按了刪除鍵
      {
        if(j==0)
      {
        WriteCommand(0x88);    //指定第三行顯示位置
        WriteData(0x20);
      }
      else
      {
        --j;
        WriteCommand(0x88+j);      //指定第三行顯示位置
        WriteData(0x20);
      }
    }
  }
  if(j>=2)
  PageID=dz[2]+dz[1]*10+dz[0]*100;
  if(j==1)
  PageID=dz[1]+dz[0]*10;
  if(j==0)
  PageID=dz[0];
  SFG_deletchar(PageID);
  if(querenma==0)
  {
    LcmClearTXT();
    PutStr(1,1,"刪去指紋號成功!"); 
  }
  else
  {
    LcmClearTXT();
    PutStr(1,0,"刪去指紋號失?。?);  
  }
  PutStr(2,0,"  按任意鍵繼續(xù)"); 
  while(Keycan()==0);
  LcmClearTXT();
}

只要實現(xiàn)以上幾個指令,就可以實現(xiàn)一個指紋密碼鎖的基本功能了。

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

    關(guān)注

    1289

    文章

    6237

    瀏覽量

    231964
  • 單片機
    +關(guān)注

    關(guān)注

    6026

    文章

    44452

    瀏覽量

    630797
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8355

    瀏覽量

    150510
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7846

    瀏覽量

    263288
  • 指紋識別模塊
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    1316
收藏 人收藏

    評論

    相關(guān)推薦

    AS608指紋識別模塊

    請問AS608指紋識別模塊,在斷電之后還保持著之前錄入的指紋嗎?下次通電是不是不需要再次錄入指紋
    發(fā)表于 04-13 17:01

    AS608指紋考勤系統(tǒng)上位機工作統(tǒng)計

    `1、特性參數(shù)ATK-AS608 指紋識別模塊是 ALIENTEK 推出的款高性能的光學(xué)指紋識別模塊
    發(fā)表于 03-06 12:21

    怎樣去開發(fā)AS608指紋模塊

    AS608指紋模塊于51單片機的二次開發(fā)前言提要、初識AS608:二、設(shè)計1.思路2.上原理圖:3.程序設(shè)計中需要注意的幾個點:串口:總結(jié)
    發(fā)表于 07-13 07:32

    指紋識別方案

    簡單了解下指紋識別吧。1、51單片機AS608指紋識別解決方案本設(shè)計是基于STC89C52單片機的指紋識別設(shè)計,采用AS608
    發(fā)表于 07-21 09:08

    基于STC89C52單片機的指紋識別設(shè)計資料分享

    本設(shè)計是基于STC89C52單片機的指紋識別設(shè)計,采用AS608指紋模塊做為傳感器,LCD1602顯示屏顯示信息。具有指紋添加,
    發(fā)表于 11-10 06:51

    怎樣去設(shè)計種基于stm32VE的AS608指紋解鎖模塊

    基于stm32VE的AS608指紋解鎖模塊是怎樣工作的?怎樣去設(shè)計種基于stm32VE的AS608指紋
    發(fā)表于 02-14 07:58

    如何去實現(xiàn)基于AS608指紋+STM32串口通信的指紋錄入設(shè)計呢

    AS608指紋識別模塊是什么?如何去實現(xiàn)基于AS608指紋+STM32串口通信的指紋錄入設(shè)計呢?
    發(fā)表于 02-18 06:37

    請問怎樣將as608指紋采集模塊指紋圖像傳到電腦里面?

    請問怎樣將as608指紋采集模塊指紋圖像傳到電腦里面?
    發(fā)表于 06-05 15:08

    ATK-AS608指紋識別模塊用戶手冊資料免費下載

    ATK-AS608 指紋識別模塊是 ALIENTEK 推出的款高性能的光學(xué)指紋識別模塊。 AT
    發(fā)表于 06-10 08:00 ?78次下載
    ATK-AS<b class='flag-5'>608</b><b class='flag-5'>指紋識別</b><b class='flag-5'>模塊</b>用戶手冊資料免費下載

    ATK-AS608指紋識別模塊測試實驗的程序和工程文件免費下載

    本文檔的主要內(nèi)容詳細介紹的是ATK-AS608指紋識別模塊測試實驗的程序和工程文件免費下載。
    發(fā)表于 01-19 17:26 ?50次下載

    基于51單片機AS608指紋自動識別電路設(shè)計(畢業(yè)設(shè)計)

    本設(shè)計是基于STC89C52單片機的指紋識別設(shè)計,采用AS608指紋模塊做為傳感器,LCD1602顯示屏顯示信息。具有指紋添加,
    發(fā)表于 11-05 09:21 ?46次下載
    基于51單片機<b class='flag-5'>AS608</b><b class='flag-5'>指紋</b>自動<b class='flag-5'>識別</b>電路設(shè)計(畢業(yè)設(shè)計)

    ATK-AS608 指紋識別模塊常見問題和疑問

    最近在做個項目,要用到AS608指紋識別模塊,當軟硬件聯(lián)調(diào)的時候,直接就是個Docking failure,也查了
    發(fā)表于 01-12 20:19 ?27次下載
    ATK-AS<b class='flag-5'>608</b> <b class='flag-5'>指紋識別</b><b class='flag-5'>模塊</b>常見問題和疑問

    AS608指紋識別模塊簡介

    AS608 指紋識別模塊主要是采用了杭州晟元芯片技術(shù)有限公司(Synochip)的 AS608 指紋識
    的頭像 發(fā)表于 06-21 15:08 ?2747次閱讀
    <b class='flag-5'>AS608</b><b class='flag-5'>指紋識別</b><b class='flag-5'>模塊</b>簡介

    AS608指紋模塊使用說明

    AS608款集成了指紋圖像采集和指紋比對算法的指紋識別模塊。它采用了高質(zhì)量的光學(xué)傳感器,能夠
    的頭像 發(fā)表于 08-24 12:21 ?3724次閱讀
    <b class='flag-5'>AS608</b><b class='flag-5'>指紋</b><b class='flag-5'>模塊</b>使用說明

    基于CW32的AS608指紋模塊的應(yīng)用

    AS608款集成了指紋圖像采集和指紋比對算法的指紋識別模塊。
    的頭像 發(fā)表于 08-28 11:30 ?1453次閱讀
    基于CW32的<b class='flag-5'>AS608</b><b class='flag-5'>指紋</b><b class='flag-5'>模塊</b>的應(yīng)用