UART指紋傳感器(C)
使用者手冊
超過VIEW
這是一個高度集成的圓形一體式電容指紋傳感器模塊,幾乎和指甲板一樣小。 該模塊通過UART指令控制,使用方便。 它的優點tag具有360°全方位驗證、快速驗證、高穩定性、低功耗等特點。
UART指紋傳感器(C)基於高性能Cortex處理器,結合高安全性商用指紋算法,具有指紋登記、圖像採集、特徵查找、模板生成和存儲、指紋比對等功能。 您無需了解複雜的指紋識別算法,只需發送一些UART命令,即可快速集成到需要小尺寸和高精度的指紋驗證應用中。
特徵
- 通過一些簡單的命令即可輕鬆使用,您無需了解任何指紋技術或模塊內部結構
- 商用指紋算法,性能穩定,驗證速度快,支持指紋登記、指紋比對、採集指紋圖像、上傳指紋特徵等。
- 電容靈敏檢測,只需輕觸採集窗口即可快速驗證
- 硬件高度集成,處理器和傳感器集成在一個小芯片中,適合小尺寸應用
- 不銹鋼窄邊,觸摸面積大,支持360°全方位驗證
- 內嵌人體傳感器,處理器自動進入休眠,觸摸時喚醒,功耗更低
- 板載UART接口,方便與STM32、Raspberry Pi等硬件平台連接
規格
- 傳感器類型:電容式觸摸
- 解析度:508DPI
- 圖像像素:192×192
- 圖像灰度:8
- 傳感器尺寸:R15.5mm
- 指紋容量:500
- 匹配時間:<500ms(1:N,且N<100)
- 誤認率:<0.001%
- 誤剔率:<0.1%
- 操作量tag電子:2.7–3V
- 工作電流:<50mA
- 睡眠電流:<16uA
- 防靜電:接觸放電8KV/空氣放電15KV
- 接口:UART
- 波特率:19200 bps
- 運行環境:
• 溫度:-20℃~70℃
• 濕度:40%RH~85%RH(無凝露) - 儲存環境:
• 溫度:-40℃~85℃
• 濕度:<85%RH(無凝露) - 壽命:1萬次
硬體
方面
介面
筆記: 實際電線的顏色可能與圖像不同。 連接時根據 PIN 而不是顏色。
- 車輛識別號:3.3V
- GND:接地
- RX:串行數據輸入(TTL)
- TX:串行數據輸出(TTL)
- RST:電源啟用/禁用引腳
• 高:電源使能
• 低:電源禁用(睡眠模式) - WAKE:喚醒引腳。 當模塊處於睡眠模式時,用手指觸摸傳感器時,WKAE 引腳為高電平。
命令
命令格式
該模塊作為從設備,需要控制主設備發送命令來控制它。 通訊接口為UART:19200 8N1。
命令和響應的格式應為:
1) =8字節
位元組 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
指令管理系統 | 0xF5 | 指令管理系統 | P1 | P2 | P3 | 0 | CHK | 0xF5 |
確認 | 0xF5 | 指令管理系統 | Q1 | Q2 | Q3 | 0 | CHK | 0xF5 |
筆記:
CMD:命令/響應類型
P1、P2、P3:命令參數
Q1、Q2、Q3:響應參數
Q3:一般情況下,Q3是該操作的有效/無效信息,應該是:
#define 確認成功 #定義ACK_FAIL #定義ACK_FULL #定義ACK_NOUSER #定義ACK_USER_OCCUPIED #定義ACK_FINGER_OCCUPIED #define 確認超時 |
0x00 0x01 0x04 0x05 0x06 0x07 0x08 |
//成功 //失敗的 //數據庫已滿 //用戶不存在 //用戶已存在 //指紋已存在 //暫停 |
CHK:校驗和,是Byte 2到Byte 6字節的異或結果
2) >8 字節。 該數據包含兩部分:數據頭和數據包數據頭:
位元組 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
指令管理系統 | 0xF5 | 指令管理系統 | 你好(倫) | 低(長) | 0 | 0 | CHK | 0xF5 |
確認 | 0xF5 | 指令管理系統 | 你好(倫) | 低(長) | Q3 | 0 | CHK | 0xF5 |
筆記:
CMD、Q3:與 1 相同)
Len:數據包中有效數據的長度,16bits(兩個字節)
Hi(Len):Len的高8位
Low(Len):Len的低8位
CHK:校驗和,是數據包Byte 1到Byte 6字節的異或結果:
位元組 | 1 | 2…Len+1 | 長度+2 | 長度+3 |
指令管理系統 | 0xF5 | 數據 | CHK | 0xF5 |
確認 | 0xF5 | 數據 | CHK | 0xF5 |
筆記:
Len:數據字節數
CHK:校驗和,是Byte 2到Byte Len+1字節的異或結果
數據包跟隨數據頭。
命令類型:
- 修改模塊SN號(CMD/ACK均為8 Byte)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x08 新 SN(位 23-16) 新 SN(位 15-8) 新SN(位7-0) 0 CHK 0xF5 確認 0xF5 0x08 舊 S(位 23-16) 舊 SN(位 15-8) 舊 SN(位 7-0) 0 CHK 0xF5 - 查詢型號SN(CMD/ACK均為8字節)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x2A 0 0 0 0 CHK 0xF5 確認 0xF5 0x2A SN(位 23-16) SN(位 15-8) SN(位 7-0) 0 CHK 0xF5 - 睡眠模式(CMD/ACK 均為 8 字節)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x2C 0 0 0 0 CHK 0xF5 確認 0xF5 0x2C 0 0 0 0 CHK 0xF5 - 設置/讀取指紋添加模式(CMD/ACK均為8字節)
有兩種模式:啟用複制模式和禁用複制模式。 當模塊處於禁用複制模式時:相同的指紋只能作為一個ID添加。 如果想添加另一個具有相同指紋的ID,DSP響應失敗信息。 模塊上電後處於禁用模式。位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x2D 0 字節5=0:
0:啟用
1:禁用
字節5=1:00:新模式
1:讀取當前模式0 CHK 0xF5 確認 0xF5 0x2D 0 當前模式 ACK_成功
確認失敗0 CHK 0xF5 - 添加指紋(CMD/ACK均為8字節)
主設備向模塊發送三次命令,並添加三次指紋,確保添加的指紋有效。
a) 首先位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF
50x0
1用戶ID(高8位) 用戶ID(低8位) 許可(1/2/3) 0 CHK 0xF5 確認 0xF
50x0
10 0 確認成功
確認失敗0 CHK 0xF5 ACK_FULL
ACK_USER_OCCUPIED ACK_FINGER_OCCUPIED
確認超時筆記:
用戶ID:1~0xFFF;
用戶權限:1,2,3,(可自行定義權限)
b) 第二位元組 1 2 3 4 5 6 7 8 指令管理系統
0xF5
0x02
使用者身分 (高8位)
使用者身分 (低8位)
允許 (1/2/3)
0
CHK
0xF5
確認
0xF5
0x02
0
0
確認成功 ACK_FAIL ACK_TIMEOUT
0
CHK
0xF5
c) 第三
位元組 1 2 3 4 5 6 7 8 指令管理系統
0xF5
0x03
使用者身分 (高8位)
使用者身分 (低8位)
允許 (1/2/3)
0
CHK
0xF5
確認
0xF5
0x03
0
0
確認成功 ACK_FAIL ACK_TIMEOUT
0
CHK
0xF5
注意: 三個命令中的用戶ID和權限。
- 添加用戶並上傳特徵值(CMD =8Byte/ACK > 8 Byte)
這些命令類似於“5. 添加指紋”,您也應該添加三次。
a) 首先
與“第一個”相同5.添加指紋”
b) 第二
與“第二個”相同5.添加指紋”
c) 第三
命令格式:位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x06 0 0 0 0 CHK 0xF5 確認格式:
1)數據頭:位元組 1 2 3 4 5 6 7 8 確認 0xF5 0x06 你好(倫) 低(長) 確認成功
確認失敗
確認超時0 CHK 0xF5 2)數據包:
位元組 1 2 3 4 5—Len+1 長度+2 長度+3 確認 0xF5 0 0 0 特徵值 CHK 0xF5 筆記:
特徵值長度(Len-)為193Byte
當ACK數據的第五個字節為ACK_SUCCESS時發送數據包 - 刪除用戶(CMD/ACK均為8字節)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x04 用戶ID(高8位) 用戶ID(低8位) 0 0 CHK 0xF5 確認 0xF5 0x04 0 0 確認成功
確認失敗0 CHK 0xF5 - 刪除所有用戶(CMD/ACK均為8 Byte)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x05 0 0 0:刪除所有用戶 1/2/3:刪除權限為1/2/3的用戶 0 CHK 0xF5 確認 0xF5 0x05 0 0 確認成功
確認失敗0 CHK 0xF5 - 用戶查詢數(CMD/ACK均為8 Byte)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x09 0 0 0:查詢計數
0xFF:查詢金額0 CHK 0xF5 確認 0xF5 0x09 計數/金額(高8位) 計數/金額(低8位) 確認成功
確認失敗
0xFF(指令=0xFF)0 CHK 0xF5 - 1:1(CMD/ACK均為8Byte)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x0B 用戶ID(高8位) 用戶ID(低8位) 0 0 CHK 0xF5 確認 0xF5 0x0B 0 0 確認成功
確認失敗
確認超時0 CHK 0xF5 - 比較1:N(CMD/ACK均為8字節)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x0C 0 0 0 0 CHK 0xF5 確認 0xF5 0x0C 用戶ID(高8位) 用戶ID(低8位) 允許
(1/2/3)
ACK_NOUSER
確認超時0 CHK 0xF5 - 查詢權限(CMD/ACK均為8字節)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x0A 用戶ID(高8位) 用戶ID(低8位) 0 0 CHK 0xF5 確認 0xF5 0x0A 0 0 允許
(1/2/3)
ACK_NOUSER0 CHK 0xF5 - 設置/查詢比較級別(CMD/ACK均為8 Byte)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x28 0 Byte5=0:新級別
字節5=1:00:設定電平
1:查詢級別0 CHK 0xF5 確認 0xF5 0x28 0 目前等級 ACK_成功
確認失敗0 CHK 0xF5 備註: 比較 level可以是0~9,值越大,比較越嚴格。 默認5
- 獲取圖像並上傳(CMD=8 Byte/ACK >8 Byte)
命令格式:位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x24 0 0 0 0 CHK 0xF5 ACK格式:
1)數據頭:位元組 1 2 3 4 5 6 7 8 確認 0xF5 0x24 你好(倫) 低(長) ACK_成功
確認失敗
確認超時0 CHK 0xF5 2)數據包
位元組 1 2—Len+1 長度+2 長度+3 確認 0xF5 影像資料 CHK 0xF5 筆記:
在DSP模塊中,指紋圖像的像素為280*280,每個像素由8位表示。 上傳時,DSP跳過了像素amp水平/垂直方向移動以減少數據大小,使圖像變成140*140,只取像素的高4位。 每兩個像素合成一個字節進行傳輸(前一個像素高4位,最後一個像素低4位)。
從第一行開始逐行傳輸,每行從第一個像素開始,總共傳輸 140*140/ 2 字節的數據。
圖像的數據長度固定為9800字節。 - 獲取圖像並上傳特徵值(CMD=8 Byte/ACK > 8Byte)
命令格式:位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x23 0 0 0 0 CHK 0xF5 ACK格式:
1)數據頭:位元組 1 2 3 4 5 6 7 8 確認 0xF5 0x23 你好(倫) 低(長) ACK_成功
確認失敗
確認超時0 CHK 0xF5 2)數據包
位元組 1 2 3 4 5—Len+1 長度+2 長度+3 確認 0xF5 0 0 0 特徵值 CHK 0xF5 筆記: 特徵值的長度(Len -3)是193字節。
- 下載特徵值並與獲取的指紋進行比較(CMD >8 Byte/ACK=8 Byte)
命令格式:
1)數據頭:位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x44 你好(倫) 低(長) 0 0 CHK 0xF5 2)數據包
位元組 1 2 3 4 5—Len+1 長度+2 長度+3 確認 0xF5 0 0 0 特徵值 CHK 0xF5 注: 特徵值長度(Len -3)為193字節。
ACK格式:位元組 1 2 3 4 5 6 7 8 確認 0xF5 0x44 0 0 ACK_成功
確認失敗
確認超時0 CHK 0xF5 - 下載特徵值並比較1:1(CMD >8 Byte/ACK=8 Byte)
命令格式:
1)數據頭:位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x42 你好(倫) 低(長) 0 0 CHK 0xF5 2)數據包
位元組 1 2 3 4 5—Len+1 長度+2 長度+2 確認 0xF5 用戶ID(高8位) 用戶ID(低8位) 0 特徵值 CHK 0xF5 筆記: 特徵值的長度(Len -3)是193字節。
ACK格式:位元組 1 2 3 4 5 6 7 8 確認 0xF5 0x43 0 0 ACK_成功
確認失敗0 CHK 0xF5 - 下載特徵值並比較1:N(CMD >8 Byte/ACK=8 Byte)
命令格式:
1)數據頭:位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x43 你好(倫) 低(長) 0 0 CHK 0xF5 2)數據包
位元組 1 2 3 4 5—Len+1 長度+2 長度+2 確認 0xF5 0 0 0 特徵值 CHK 0xF5 筆記: 特徵值的長度(Len -3)是193字節。
ACK格式:位元組 1 2 3 4 5 6 7 8 確認 0xF5 0x43 用戶ID(高8位) 用戶ID(低8位) 允許
(1/2/3)
ACK_NOUSER0 CHK 0xF5 - 從DSP模型上傳特徵值CMD=8 Byte/ACK >8 Byte)
命令格式:位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x31 用戶ID(高8位) 用戶ID(低8位) 0 0 CHK 0xF5 ACK格式:
1)數據頭:位元組 1 2 3 4 5 6 7 8 確認 0xF5 0x31 你好(倫) 低(長) ACK_成功
確認失敗
ACK_NOUSER0 CHK 0xF5 2)數據包
位元組 1 2 3 4 5—Len+1 長度+2 長度+3 確認 0xF5 用戶ID(高8位) 用戶ID(低8位) 許可(1/2/3) 特徵值 CHK 0xF5 筆記: 特徵值的長度(Len -3)是193字節。
- 下載特徵值並作為用戶ID保存到DSP(CMD>8 Byte/ACK =8 Byte)
命令格式:
1)數據頭:位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x41 你好(倫) 低(長) 0 0 CHK 0xF5 2)數據包
位元組 1 2 3 4 5—Len+1 長度+2 長度+3 確認 0xF5 用戶ID(高8位) 用戶ID(低8位) 許可(1/2/3) 特徵值 CHK 0xF5 筆記: 特徵值的長度(Len -3)是193字節。
ACK格式:位元組 1 2 3 4 5 6 7 8 確認 0xF5 0x41 用戶ID(高8位) 用戶ID(低8位) 確認成功
確認失敗0 CHK 0xF5 - 查詢所有添加的用戶信息(ID和權限)(CMD=8 Byte/ACK >8Byte)
命令格式:位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x2B 0 0 0 0 CHK 0xF5 ACK格式:
1)數據頭:位元組 1 2 3 4 5 6 7 8 確認 0xF5 0x2B 你好(倫) 低(長) ACK_成功
確認失敗0 CHK 0xF5 2)數據包
位元組 1 2 3 4—Len+1 長度+2 長度+3 確認 0xF5 用戶ID(高8位) 用戶ID(低8位) 用戶信息(用戶ID和權限) CHK 0xF5 筆記:
數據包的數據長度(Len)為“3*用戶ID+2”
用戶信息格式:位元組 4 5 6 7 8 9 … 數據 用戶ID1(高8位) 用戶ID1(低8位) 用戶 1 權限 (1/2/3) 用戶ID2(高8位) 用戶ID2(低8位) 用戶 2 權限 (1/2/3) …
- 設置/查詢指紋採集超時時間(CMD/ACK均為8 Byte)
位元組 1 2 3 4 5 6 7 8 指令管理系統 0xF5 0x2E 0 Byte5=0:超時
字節5=1:00:設置超時時間
1:查詢超時0 CHK 0xF5 確認 0xF5 0x2E 0 暫停 ACK_成功
確認失敗0 CHK 0xF5 筆記:
指紋等待超時(tout)值的範圍是0-255。 如果該值為0,則在沒有指紋按下的情況下,指紋採集過程將繼續進行; 如果該值不為0,則在tout*T0時間內沒有指紋按下,系統會因超時而存在。
筆記: T0是採集/處理圖像所需的時間,通常為0.2-0.3秒。
溝通過程
添加指紋
刪除用戶
刪除所有用戶
獲取圖像並上傳特徵值
用戶指南
如果要將指紋模塊連接到PC,則需要購買一個UART轉USB模塊。 我們推薦您使用Waveshare FT232 USB UART 板(微型) 模組。
如果要將指紋模塊連接到樹莓派等開發板,如果工作正常
您的板子的電平為3.3V,您可以直接將其連接到板子的UART和GPIO引腳。 如果是5V,請加電平轉換模塊/電路。
連接到電腦
硬件連接
您需要:
- UART指紋傳感器(C)*1
- FT232 USB 串口板 *1
- 微型 USB 線 *1
將指紋模塊和FT232 USB UART Board連接到PC
UART指紋傳感器(C) | FT232 USB 串口板 |
VCC | VCC |
接地 | 接地 |
RX | TX |
TX | RX |
快速恢復時間 | NC |
喚醒 | NC |
測試
- 從 wiki 下載 UART 指紋傳感器測試軟件
- 打開軟件,選擇正確的COM口。(本軟件僅支持COM1~COM8,如果您電腦的COM口超出此範圍,請修改)
- 測試
測試界面提供了幾個功能
- 查詢計數
選擇 數數, 然後單擊 發送。 返回用戶數並顯示在信息中 回覆 介面 - 新增用戶
選擇 添加用戶, 檢查 獲得兩次 和 自動識別+1, 輸入 ID(P1 和 P2)和許可(P3),然後點擊 發送。 最後,觸摸傳感器獲取指紋。 - 刪除用戶
選擇 刪除用戶, 輸入 ID(P1 和 P2)和許可(P3),然後單擊“發送”。 - 刪除所有用戶
選擇 刪除所有用戶,然後單擊發送 - 比較1:1
選擇 1:1 比較,輸入 ID(P1 和 P2)和許可(P3),然後點擊 發送。 - 比較 1:N
選擇 1:N比較,然後按一下 發送。
…
更多功能請測試。 (該模塊部分功能不可用)
連接到 XNUCLEO-F103RB
我們提供了 XNCULEO-F103RB 的演示代碼,您可以從 wiki 下載
UART指紋傳感器(C) | NUCLEO-F103RB |
VCC | 3.3V |
接地 | 接地 |
RX | PA9 |
TX | PA10 |
快速恢復時間 | PB5 |
喚醒 | PB3 |
筆記: 關於管腳請參考 介面 多於
- 將UART指紋傳感器(C)連接到XNUCLEO_F103RB,並連接編程器
- 通過keil5軟件打開工程(演示代碼)
- 檢查編程器和設備是否正常識別
- 編譯下載
- 通過USB線將XNUCELO-F103RB連接到PC,打開串口輔助軟件,設置COM端口:115200、8N1
根據返回的信息輸入命令測試模塊。
連接到樹莓派
我們提供了一個 python exampRaspberry Pi 的文件,您可以從 wiki 下載它
在使用 ex 之前amp文件中,首先要啟用樹莓派的串口:
在終端上輸入命令: sudo raspi-config
選擇:接口選項 -> 串行 -> 否 -> 是
然後重啟。
UART指紋傳感器(C) | 樹莓派 |
VCC | 3.3V |
接地 | 接地 |
RX | 14 (BCM) – PIN 8(板) |
TX | 15 (BCM) – PIN 10(板) |
快速恢復時間 | 24 (BCM) – PIN 18(板) |
喚醒 | 23 (BCM) – PIN 16(板) |
- 將指紋模塊連接到樹莓派
- 將演示代碼下載到 Raspberry Pi:wget https://www.waveshare.com/w/upload/9/9d/UART-Fignerprint-RaspberryPi.tar.gz
- 解壓縮
tar zxvf UART-Fingerprint-RaspberryPi.tar.gz - 運行前ample
cd UART-Fingerprint-RaspberryPi/sudo python main.py - 按照指南測試
文件/資源
![]() |
WAVESHARE STM32F205 UART 指紋傳感器 [pdf] 使用者手冊 STM32F205,UART指紋傳感器,STM32F205 UART指紋傳感器,指紋傳感器 |