ເຊັນເຊີລາຍນິ້ວມື UART (C)
ຄູ່ມືຜູ້ໃຊ້
ເກີນVIEW
ນີ້ແມ່ນໂມດູນເຊັນເຊີລາຍນິ້ວມືແບບ capacitive ທີ່ມີຮູບຊົງກົມທີ່ປະສົມປະສານສູງ, ເຊິ່ງເກືອບເທົ່າກັບແຜ່ນເລັບ. ໂມດູນຖືກຄວບຄຸມໂດຍຜ່ານຄໍາສັ່ງ UART, ງ່າຍຕໍ່ການນໍາໃຊ້. advan ຂອງຕົນtages ປະກອບມີ 360° ການຢັ້ງຢືນ Omni-directional, ການກວດສອບໄວ, ຄວາມຫມັ້ນຄົງສູງ, ການບໍລິໂພກພະລັງງານຕ່ໍາ, ແລະອື່ນໆ.
ອີງໃສ່ໂປເຊດເຊີ Cortex ທີ່ມີປະສິດທິພາບສູງ, ປະສົມປະສານກັບລະບົບການພິມລາຍນິ້ວມືທາງການຄ້າທີ່ມີຄວາມປອດໄພສູງ, ເຊັນເຊີລາຍນິ້ວມື UART (C) ມີຄຸນສົມບັດຕ່າງໆເຊັ່ນ: ການລົງທະບຽນລາຍນິ້ວມື, ການຈັດຫາຮູບພາບ, ການຊອກຫາຄຸນສົມບັດ, ການສ້າງແບບຈໍາລອງແລະການເກັບຮັກສາ, ການຈັບຄູ່ລາຍນິ້ວມື, ແລະອື່ນໆ. ໂດຍບໍ່ມີຄວາມຮູ້ໃດໆກ່ຽວກັບລະບົບການພິມລາຍນິ້ວມືທີ່ສັບສົນ, ສິ່ງທີ່ທ່ານຕ້ອງເຮັດແມ່ນພຽງແຕ່ສົ່ງຄໍາສັ່ງ UART ບາງຢ່າງ, ເພື່ອປະສົມປະສານມັນເຂົ້າໄປໃນຄໍາຮ້ອງສະຫມັກການກວດສອບລາຍນິ້ວມືທີ່ຮຽກຮ້ອງໃຫ້ມີຂະຫນາດຂະຫນາດນ້ອຍແລະຄວາມແມ່ນຍໍາສູງ.
ຄຸນສົມບັດ
- ການນໍາໃຊ້ງ່າຍໂດຍບາງຄໍາສັ່ງທີ່ງ່າຍດາຍ, ທ່ານບໍ່ຈໍາເປັນຕ້ອງຮູ້ຈັກເຕັກໂນໂລຊີນິ້ວມືຫຼືໂຄງສ້າງລະຫວ່າງໂມດູນ
- ຂັ້ນຕອນການພິມລາຍນິ້ວມືທາງການຄ້າ, ປະສິດທິພາບທີ່ໝັ້ນຄົງ, ການກວດສອບໄວ, ຮອງຮັບການລົງທະບຽນລາຍນິ້ວມື, ການຈັບຄູ່ລາຍນິ້ວມື, ເກັບກໍາຮູບພາບລາຍນິ້ວມື, ອັບໂຫຼດຄຸນສົມບັດລາຍນິ້ວມື, ແລະອື່ນໆ.
- ການກວດສອບຄວາມອ່ອນໄຫວຂອງ capacitive, ພຽງແຕ່ແຕະທີ່ປ່ອງຢ້ຽມເກັບກໍາຂໍ້ມູນເບົາໆສໍາລັບການຢັ້ງຢືນໄວ
- ຮາດແວປະສົມປະສານສູງ, ໂປເຊດເຊີແລະເຊັນເຊີໃນຊິບຂະຫນາດນ້ອຍຫນຶ່ງ, ເຫມາະສົມກັບຄໍາຮ້ອງສະຫມັກຂະຫນາດນ້ອຍ
- ຂອບສະແຕນເລດແຄບ, ພື້ນທີ່ສໍາຜັດຂະຫນາດໃຫຍ່, ສະຫນັບສະຫນູນການຢັ້ງຢືນ 360 ° Omni-directional.
- ເຊັນເຊີຂອງມະນຸດຝັງໄວ້, ໂປເຊດເຊີຈະເຂົ້ານອນໂດຍອັດຕະໂນມັດ, ແລະຕື່ນຂຶ້ນເມື່ອສໍາຜັດ, ການໃຊ້ພະລັງງານຕ່ໍາ
- Onboard UART connector, ງ່າຍທີ່ຈະເຊື່ອມຕໍ່ກັບແພລະຕະຟອມຮາດແວເຊັ່ນ STM32 ແລະ Raspberry Pi
ຂໍ້ມູນສະເພາະ
- ປະເພດເຊັນເຊີ: ການສໍາພັດ capacitive
- ຄວາມລະອຽດ: 508DPI
- ພິກເຊວຮູບ: 192×192
- ຮູບພາບສີເທົາ: 8
- ຂະຫນາດເຊັນເຊີ: R15.5mm
- ຄວາມສາມາດນີ້ວມື: 500
- ເວລາຈັບຄູ່: <500ms (1:N, ແລະ N<100)
- ອັດຕາການຍອມຮັບຜິດ: <0.001%
- ອັດຕາການປະຕິເສດທີ່ບໍ່ຖືກຕ້ອງ: <0.1%
- ປະຕິບັດການ voltage:2.7–3V
- ປະຈຸບັນປະຕິບັດການ: <50mA
- ກະແສການນອນ: <16uA
- Anti-electrostatic: contact discharge 8KV / aerial discharge 15KV
- ການໂຕ້ຕອບ: UART
- Baudrate: 19200 bps
- ສະພາບແວດລ້ອມການດໍາເນີນງານ:
• ອຸນຫະພູມ: -20°C~70°C
• ຄວາມຊຸ່ມຊື່ນ: 40%RH ~ 85%RH (ບໍ່ condensation) - ສະພາບແວດລ້ອມການເກັບຮັກສາ:
• ອຸນຫະພູມ: -40°C~85°C
• ຄວາມຊຸ່ມຊື້ນ: <85%RH (ບໍ່ condensation) - ຊີວິດ: 1 ລ້ານເທື່ອ
ຮາດແວ
ມິຕິ
ການໂຕ້ຕອບ
ໝາຍເຫດ: ສີຂອງສາຍໄຟຕົວຈິງອາດຈະແຕກຕ່າງຈາກຮູບ. ອີງຕາມ PIN ເມື່ອເຊື່ອມຕໍ່ແຕ່ບໍ່ແມ່ນສີ.
- VIN: 3.3V
- GND: ດິນ
- RX: ການປ້ອນຂໍ້ມູນ Serial (TTL)
- TX: Serial data output (TTL)
- RST: ເປີດ/ປິດການໃຊ້ງານ Pin
• ສູງ: ເປີດໃຊ້ງານ
• ຕ່ຳ: ປິດການໃຊ້ງານພະລັງງານ (ໂໝດນອນ) - WAKE: ຕື່ນນອນ pin. ເມື່ອໂມດູນຢູ່ໃນໂໝດນອນ, PIN WKAE ແມ່ນສູງເມື່ອແຕະເຊັນເຊີດ້ວຍນິ້ວມື.
ຄໍາສັ່ງ
ຮູບແບບຄໍາສັ່ງ
ໂມດູນນີ້ເຮັດວຽກເປັນອຸປະກອນສໍາລອງ, ແລະທ່ານຄວນຄວບຄຸມອຸປະກອນ Master ເພື່ອສົ່ງຄໍາສັ່ງເພື່ອຄວບຄຸມມັນ. ການໂຕ້ຕອບການສື່ສານແມ່ນ UART: 19200 8N1.
ຄໍາສັ່ງຮູບແບບແລະການຕອບສະຫນອງຄວນຈະເປັນ:
1) = 8 ໄບຕ໌
ໄບຕ໌ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
CMD | 0xF5 | CMD | P1 | P2 | P3 | 0 | CHK | 0xF5 |
ACK | 0xF5 | CMD | Q1 | Q2 | Q3 | 0 | CHK | 0xF5 |
ໝາຍເຫດ:
CMD: ປະເພດຂອງຄໍາສັ່ງ / ຄໍາຕອບ
P1, P2, P3: ພາລາມິເຕີຂອງຄໍາສັ່ງ
Q1, Q2, Q3: ພາລາມິເຕີຂອງການຕອບສະຫນອງ
Q3: ໂດຍທົ່ວໄປ, Q3 ແມ່ນຂໍ້ມູນທີ່ຖືກຕ້ອງ / ບໍ່ຖືກຕ້ອງຂອງການດໍາເນີນງານ, ມັນຄວນຈະເປັນ:
#ກຳນົດ ACK_SUCCESS #ກຳນົດ ACK_FAIL #ກຳນົດ ACK_FULL #ກຳນົດ ACK_NOUSER #define ACK_USER_OCCUPIED #ກຳນົດ ACK_FINGER_OCCUPIED #ກຳນົດ ACK_TIMEOUT |
0x00 0x01 0x04 0x05 0x06 0x07 0x08 |
//ຄວາມສໍາເລັດ // ລົ້ມເຫລວ // ຖານຂໍ້ມູນເຕັມ // ຜູ້ໃຊ້ບໍ່ມີຢູ່ // ຜູ້ໃຊ້ມີຢູ່ // ລາຍນິ້ວມືມີຢູ່ //ຫມົດເວລາ |
CHK: Checksum, ມັນແມ່ນ XOR ຜົນຂອງ bytes ຈາກ Byte 2 ຫາ Byte 6
2) > 8 bytes. ຂໍ້ມູນນີ້ປະກອບດ້ວຍສອງພາກສ່ວນ: ຫົວຂໍ້ມູນແລະຫົວຂໍ້ມູນຊຸດຂໍ້ມູນ:
ໄບຕ໌ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
CMD | 0xF5 | CMD | ສະບາຍດີ(ເລນ) | ຕ່ຳ(ເລນ) | 0 | 0 | CHK | 0xF5 |
ACK | 0xF5 | CMD | ສະບາຍດີ(ເລນ) | ຕ່ຳ(ເລນ) | Q3 | 0 | CHK | 0xF5 |
ໝາຍເຫດ:
CMD, Q3: ຄືກັນກັບ 1)
Len: ຄວາມຍາວຂອງຂໍ້ມູນທີ່ຖືກຕ້ອງໃນຊຸດຂໍ້ມູນ, 16bits (ສອງ bytes)
Hi(Len): ສູງ 8 bits ຂອງ Len
Low(Len): ຕ່ຳ 8 bits ຂອງ Len
CHK: Checksum, ມັນແມ່ນ XOR ຜົນໄດ້ຮັບຂອງ bytes ຈາກ Byte 1 ເຖິງ Byte 6 ຊຸດຂໍ້ມູນ:
ໄບຕ໌ | 1 | 2…Len+1 | Len+2 | Len+3 |
CMD | 0xF5 | ຂໍ້ມູນ | CHK | 0xF5 |
ACK | 0xF5 | ຂໍ້ມູນ | CHK | 0xF5 |
ໝາຍເຫດ:
Len: ຕົວເລກຂອງ Data bytes
CHK: Checksum, ມັນແມ່ນ XOR ຜົນຂອງ bytes ຈາກ Byte 2 ຫາ Byte Len+1
ຊຸດຂໍ້ມູນຕາມຫົວຂໍ້ມູນ.
ປະເພດຄໍາສັ່ງ:
- ແກ້ໄຂໝາຍເລກ SN ຂອງໂມດູນ (CMD/ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x08 SN ໃໝ່ (Bit 23-16) SN ໃໝ່ (Bit 15-8) SN ໃໝ່ (ບິດ 7-0) 0 CHK 0xF5 ACK 0xF5 0x08 ອາຍຸ S (Bit 23-16) SN ເກົ່າ (Bit 15-8) SN ເກົ່າ (Bit 7-0) 0 CHK 0xF5 - ແບບສອບຖາມ SN (CMD/ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x2A 0 0 0 0 CHK 0xF5 ACK 0xF5 0x2A SN (ບິດ 23-16) SN (ບິດ 15-8) SN (ບິດ 7-0) 0 CHK 0xF5 - ໂໝດນອນ (CMD/ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 ຂະ ໜາດ 0x2C 0 0 0 0 CHK 0xF5 ACK 0xF5 ຂະ ໜາດ 0x2C 0 0 0 0 CHK 0xF5 - ຕັ້ງຄ່າ/ອ່ານຮູບແບບການເພີ່ມລາຍນິ້ວມື (CMD/ACK ທັງ 8 Byte)
ມີສອງຮູບແບບ: ເປີດໃຊ້ງານຮູບແບບການຊໍ້າຊ້ອນແລະປິດການທໍາງານຮູບແບບການຊໍ້າຊ້ອນ. ເມື່ອໂມດູນຢູ່ໃນ mod duplication ທີ່ຖືກປິດໃຊ້ງານ: ລາຍນິ້ວມືດຽວກັນສາມາດຖືກເພີ່ມເປັນ ID ດຽວເທົ່ານັ້ນ. ຖ້າທ່ານຕ້ອງການເພີ່ມ ID ອື່ນດ້ວຍລາຍນິ້ວມືດຽວກັນ, ຂໍ້ມູນການຕອບໂຕ້ DSP ລົ້ມເຫລວ. ໂມດູນຢູ່ໃນໂໝດປິດໃຊ້ງານຫຼັງຈາກເປີດເຄື່ອງ.ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x2D 0 Byte5=0:
0: ເປີດໃຊ້ງານ
1: ປິດການໃຊ້ງານ
Byte5=1:00: ໂໝດໃໝ່
1: ອ່ານຮູບແບບປະຈຸບັນ0 CHK 0xF5 ACK 0xF5 0x2D 0 ໂໝດ ປະຈຸບັນ ACK_SUCCUSS
ACK_FAIL0 CHK 0xF5 - ເພີ່ມລາຍນິ້ວມື (CMD/ACK ທັງ 8 Byte)
ອຸປະກອນແມ່ແບບຄວນສົ່ງຄໍາສັ່ງສາມຄັ້ງໄປຫາໂມດູນແລະເພີ່ມລາຍນິ້ວມືສາມຄັ້ງ, ໃຫ້ແນ່ໃຈວ່າລາຍນິ້ວມືທີ່ເພີ່ມແມ່ນຖືກຕ້ອງ.
a) ທໍາອິດໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF
50x0
1ID ຜູ້ໃຊ້ (8Bit ສູງ) ID ຜູ້ໃຊ້ (8Bit ຕໍ່າ) ອະນຸຍາດ (1/2/3) 0 CHK 0xF5 ACK 0xF
50x0
10 0 ACK_SUCCESS
ACK_FAIL0 CHK 0xF5 ACK_FULL
ACK_USER_OCCUPIED ACK_FINGER_OCCUPIED
ACK_TIMEOUTໝາຍເຫດ:
User ID: 1~0xFFF;
ການອະນຸຍາດຜູ້ໃຊ້: 1,2,3, (ທ່ານສາມາດກໍານົດການອະນຸຍາດຕົວທ່ານເອງ)
b) ອັນທີສອງໄບຕ໌ 1 2 3 4 5 6 7 8 CMD
0xF5
0x02
ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ)
ID ຜູ້ໃຊ້ (ຕ່ຳ 8 ບິດ)
ການອະນຸຍາດ (1/2/3)
0
CHK
0xF5
ACK
0xF5
0x02
0
0
ACK_SUCCESS ACK_FAIL ACK_TIMEOUT
0
CHK
0xF5
c) ທີສາມ
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD
0xF5
0x03
ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ)
ID ຜູ້ໃຊ້ (ຕ່ຳ 8 ບິດ)
ການອະນຸຍາດ (1/2/3)
0
CHK
0xF5
ACK
0xF5
0x03
0
0
ACK_SUCCESS ACK_FAIL ACK_TIMEOUT
0
CHK
0xF5
ຫມາຍເຫດ: User ID ແລະການອະນຸຍາດໃນສາມຄໍາສັ່ງ.
- ເພີ່ມຜູ້ໃຊ້ແລະອັບໂຫລດ eigenvalues (CMD = 8Byte/ACK > 8 Byte)
ຄໍາສັ່ງເຫຼົ່ານີ້ແມ່ນຄ້າຍຄືກັນກັບ "5. ເພີ່ມລາຍນິ້ວມື", ທ່ານຄວນເພີ່ມສາມເທື່ອເຊັ່ນກັນ.
a) ທໍາອິດ
ຄືກັນກັບຄັ້ງທໍາອິດຂອງ "5. ເພີ່ມລາຍນິ້ວມື”
b) ອັນທີສອງ
ຄືກັນກັບຄັ້ງທີສອງຂອງ "5. ເພີ່ມລາຍນິ້ວມື”
c) ອັນທີສາມ
ຮູບແບບ CMD:ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x06 0 0 0 0 CHK 0xF5 ຮູບແບບ ACK:
1) ຫົວຂໍ້ມູນ:ໄບຕ໌ 1 2 3 4 5 6 7 8 ACK 0xF5 0x06 ສະບາຍດີ(ເລນ) ຕ່ຳ(ເລນ) ACK_SUCCESS
ACK_FAIL
ACK_TIMEOUT0 CHK 0xF5 2) ຊຸດຂໍ້ມູນ:
ໄບຕ໌ 1 2 3 4 5—ເລນ+1 Len+2 Len+3 ACK 0xF5 0 0 0 Eigenvalues CHK 0xF5 ໝາຍເຫດ:
ຄວາມຍາວຂອງ Eigenvalues(Len-) ແມ່ນ 193Byte
ຊຸດຂໍ້ມູນຖືກສົ່ງເມື່ອ byte ທີຫ້າຂອງຂໍ້ມູນ ACK ແມ່ນ ACK_SUCCESS - ລຶບຜູ້ໃຊ້ (CMD/ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x04 ID ຜູ້ໃຊ້ (8Bit ສູງ) ID ຜູ້ໃຊ້ (8Bit ຕໍ່າ) 0 0 CHK 0xF5 ACK 0xF5 0x04 0 0 ACK_SUCCESS
ACK_FAIL0 CHK 0xF5 - ລຶບຜູ້ໃຊ້ທັງໝົດ (CMD/ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x05 0 0 0:ລຶບຜູ້ໃຊ້ທັງໝົດ 1/2/3: ລຶບຜູ້ໃຊ້ທີ່ມີການອະນຸຍາດແມ່ນ 1/2/3 0 CHK 0xF5 ACK 0xF5 0x05 0 0 ACK_SUCCESS
ACK_FAIL0 CHK 0xF5 - ການສອບຖາມຈໍານວນຜູ້ໃຊ້ (CMD / ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x09 0 0 0: ຈໍານວນຄໍາຖາມ
0xFF: ຈໍານວນຄໍາຖາມ0 CHK 0xF5 ACK 0xF5 0x09 ຈຳນວນ/ຈຳນວນ (ສູງ 8Bit) ຈຳນວນ/ຈຳນວນ (ຕ່ຳ 8 ບິດ) ACK_SUCCESS
ACK_FAIL
0xFF(CMD=0xFF)0 CHK 0xF5 - 1:1 (CMD/ACK ທັງ 8Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x0B ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ) ID ຜູ້ໃຊ້ (ຕໍ່າ 8 ບິດ) 0 0 CHK 0xF5 ACK 0xF5 0x0B 0 0 ACK_SUCCESS
ACK_FAIL
ACK_TIMEOUT0 CHK 0xF5 - ປຽບທຽບ 1: N (CMD/ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 ຂະ ໜາດ 0x0C 0 0 0 0 CHK 0xF5 ACK 0xF5 ຂະ ໜາດ 0x0C ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ) ID ຜູ້ໃຊ້ (ຕໍ່າ 8 ບິດ) ການອະນຸຍາດ
(1/2/3)
ACK_NOUSER
ACK_TIMEOUT0 CHK 0xF5 - Query Permission (CMD/ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x0A User ID (ສູງ 8Bit) ID ຜູ້ໃຊ້ (Low8Bit) 0 0 CHK 0xF5 ACK 0xF5 0x0A 0 0 ການອະນຸຍາດ
(1/2/3)
ACK_NOUSER0 CHK 0xF5 - ຕັ້ງຄ່າການປຽບທຽບລະດັບການສອບຖາມ (CMD/ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x28 0 Byte5=0: ລະດັບໃໝ່
Byte5=1:00: ກໍານົດລະດັບ
1: ລະດັບການສອບຖາມ0 CHK 0xF5 ACK 0xF5 0x28 0 ລະດັບປະຈຸບັນ ACK_SUCCUSS
ACK_FAIL0 CHK 0xF5 ຫມາຍເຫດ: ການປຽບທຽບ ລະດັບສາມາດເປັນ 0 ~ 9, ມູນຄ່າທີ່ໃຫຍ່ກວ່າ, ການປຽບທຽບທີ່ເຄັ່ງຄັດ. ຄ່າເລີ່ມຕົ້ນ 5
- ໄດ້ຮັບຮູບພາບແລະອັບໂຫລດ (CMD = 8 Byte / ACK > 8 Byte)
ຮູບແບບ CMD:ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x24 0 0 0 0 CHK 0xF5 ຮູບແບບ ACK:
1) ຫົວຂໍ້ມູນ:ໄບຕ໌ 1 2 3 4 5 6 7 8 ACK 0xF5 0x24 ສະບາຍດີ(ເລນ) ຕ່ຳ(ເລນ) ACK_SUCCUSS
ACK_FAIL
ACK_TIMEOUT0 CHK 0xF5 2) ຊຸດຂໍ້ມູນ
ໄບຕ໌ 1 2—ເລນ+1 Len+2 Len+3 ACK 0xF5 ຂໍ້ມູນຮູບພາບ CHK 0xF5 ໝາຍເຫດ:
ໃນໂມດູນ DSP, pixels ຂອງຮູບພາບລາຍນິ້ວມືແມ່ນ 280*280, ທຸກ pixels ຈະຖືກສະແດງໂດຍ 8 bits. ເມື່ອອັບໂຫຼດ, DSP ໄດ້ຂ້າມ pixels sampວາງໃນທິດທາງແນວນອນ/ແນວຕັ້ງເພື່ອຫຼຸດຂະໜາດຂໍ້ມູນ, ເພື່ອໃຫ້ຮູບພາບກາຍເປັນ 140*140, ແລະພຽງແຕ່ເອົາ pixels ສູງ 4 ບິດເທົ່ານັ້ນ. ທຸກໆສອງ pixels ປະກອບເປັນຫນຶ່ງ byte ສໍາລັບການໂອນ (pixel ສູງ 4-bit ທີ່ຜ່ານມາ, pixels ສຸດທ້າຍຕ່ໍາ 4-pixel).
ການສົ່ງຕໍ່ເລີ່ມຕົ້ນໂດຍແຖວຈາກແຖວທໍາອິດ, ແຕ່ລະແຖວເລີ່ມຕົ້ນຈາກ pixels ລວງທໍາອິດ, ການໂອນທັງຫມົດ 140 * 140/2 bytes ຂອງຂໍ້ມູນ.
ຄວາມຍາວຂໍ້ມູນຂອງຮູບພາບແມ່ນຄົງທີ່ 9800 bytes. - ໄດ້ຮັບຮູບພາບແລະອັບໂຫລດ eigenvalues (CMD = 8 Byte / ACK> 8Byte)
ຮູບແບບ CMD:ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x23 0 0 0 0 CHK 0xF5 ຮູບແບບ ACK:
1) ຫົວຂໍ້ມູນ:ໄບຕ໌ 1 2 3 4 5 6 7 8 ACK 0xF5 0x23 ສະບາຍດີ(ເລນ) ຕ່ຳ(ເລນ) ACK_SUCCUSS
ACK_FAIL
ACK_TIMEOUT0 CHK 0xF5 2) ຊຸດຂໍ້ມູນ
ໄບຕ໌ 1 2 3 4 5—ເລນ+1 Len+2 Len+3 ACK 0xF5 0 0 0 Eigenvalues CHK 0xF5 ໝາຍເຫດ: ຄວາມຍາວຂອງ Eigenvalues (Len -3) ແມ່ນ 193 bytes.
- ດາວໂຫລດ eigenvalues ແລະປຽບທຽບກັບລາຍນິ້ວມືທີ່ໄດ້ມາ (CMD>8 Byte/ACK=8 Byte)
ຮູບແບບ CMD:
1) ຫົວຂໍ້ມູນ:ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x44 ສະບາຍດີ(ເລນ) ຕ່ຳ(ເລນ) 0 0 CHK 0xF5 2) ຊຸດຂໍ້ມູນ
ໄບຕ໌ 1 2 3 4 5—ເລນ+1 Len+2 Len+3 ACK 0xF5 0 0 0 Eigenvalues CHK 0xF5 ຫມາຍເຫດ: ຄວາມຍາວຂອງ Eigenvalues (Len -3) ແມ່ນ 193 bytes.
ຮູບແບບ ACK:ໄບຕ໌ 1 2 3 4 5 6 7 8 ACK 0xF5 0x44 0 0 ACK_SUCCUSS
ACK_FAIL
ACK_TIMEOUT0 CHK 0xF5 - ດາວໂຫລດ eigenvalues ແລະການປຽບທຽບ 1:1 (CMD >8 Byte/ACK=8 Byte)
ຮູບແບບ CMD:
1) ຫົວຂໍ້ມູນ:ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x42 ສະບາຍດີ(ເລນ) ຕ່ຳ(ເລນ) 0 0 CHK 0xF5 2) ຊຸດຂໍ້ມູນ
ໄບຕ໌ 1 2 3 4 5—ເລນ+1 Len+2 Len+2 ACK 0xF5 ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ) ID ຜູ້ໃຊ້ (ຕໍ່າ 8 ບິດ) 0 Eigenvalues CHK 0xF5 ໝາຍເຫດ: ຄວາມຍາວຂອງ Eigenvalues (Len -3) ແມ່ນ 193 bytes.
ຮູບແບບ ACK:ໄບຕ໌ 1 2 3 4 5 6 7 8 ACK 0xF5 0x43 0 0 ACK_SUCCUSS
ACK_FAIL0 CHK 0xF5 - ດາວໂຫລດ eigenvalues ແລະການປຽບທຽບ 1:N (CMD >8 Byte/ACK=8 Byte)
ຮູບແບບ CMD:
1) ຫົວຂໍ້ມູນ:ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x43 ສະບາຍດີ(ເລນ) ຕ່ຳ(ເລນ) 0 0 CHK 0xF5 2) ຊຸດຂໍ້ມູນ
ໄບຕ໌ 1 2 3 4 5—ເລນ+1 Len+2 Len+2 ACK 0xF5 0 0 0 Eigenvalues CHK 0xF5 ໝາຍເຫດ: ຄວາມຍາວຂອງ Eigenvalues (Len -3) ແມ່ນ 193 bytes.
ຮູບແບບ ACK:ໄບຕ໌ 1 2 3 4 5 6 7 8 ACK 0xF5 0x43 ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ) ID ຜູ້ໃຊ້ (ຕໍ່າ 8 ບິດ) ການອະນຸຍາດ
(1/2/3)
ACK_NOUSER0 CHK 0xF5 - ອັບໂຫລດ eigenvalues ຈາກແບບ DSP CMD=8 Byte/ACK >8 Byte)
ຮູບແບບ CMD:ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x31 ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ) ID ຜູ້ໃຊ້ (ຕໍ່າ 8 ບິດ) 0 0 CHK 0xF5 ຮູບແບບ ACK:
1) ຫົວຂໍ້ມູນ:ໄບຕ໌ 1 2 3 4 5 6 7 8 ACK 0xF5 0x31 ສະບາຍດີ(ເລນ) ຕ່ຳ(ເລນ) ACK_SUCCUSS
ACK_FAIL
ACK_NOUSER0 CHK 0xF5 2) ຊຸດຂໍ້ມູນ
ໄບຕ໌ 1 2 3 4 5—ເລນ+1 Len+2 Len+3 ACK 0xF5 ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ) ID ຜູ້ໃຊ້ (ຕໍ່າ 8 ບິດ) ອະນຸຍາດ (1/2/3) Eigenvalues CHK 0xF5 ໝາຍເຫດ: ຄວາມຍາວຂອງ Eigenvalues (Len -3) ແມ່ນ 193 bytes.
- ດາວໂຫລດ eigenvalues ແລະບັນທຶກເປັນ User ID ໄປທີ່ DSP (CMD>8 Byte/ACK =8 Byte)
ຮູບແບບ CMD:
1) ຫົວຂໍ້ມູນ:ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x41 ສະບາຍດີ(ເລນ) ຕ່ຳ(ເລນ) 0 0 CHK 0xF5 2) ຊຸດຂໍ້ມູນ
ໄບຕ໌ 1 2 3 4 5—ເລນ+1 Len+2 Len+3 ACK 0xF5 ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ) User ID (Low8 Bit) ອະນຸຍາດ (1/2/3) Eigenvalues CHK 0xF5 ໝາຍເຫດ: ຄວາມຍາວຂອງ Eigenvalues (Len -3) ແມ່ນ 193 bytes.
ຮູບແບບ ACK:ໄບຕ໌ 1 2 3 4 5 6 7 8 ACK 0xF5 0x41 ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ) ID ຜູ້ໃຊ້ (ຕໍ່າ 8 ບິດ) ACK_SUCCESS
ACK_FAIL0 CHK 0xF5 - ຂໍ້ມູນການສອບຖາມ (ID ແລະການອະນຸຍາດ) ຂອງຜູ້ໃຊ້ທັງຫມົດທີ່ເພີ່ມເຕີມ (CMD=8 Byte/ACK >8Byte)
ຮູບແບບ CMD:ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x2B 0 0 0 0 CHK 0xF5 ຮູບແບບ ACK:
1) ຫົວຂໍ້ມູນ:ໄບຕ໌ 1 2 3 4 5 6 7 8 ACK 0xF5 0x2B ສະບາຍດີ(ເລນ) ຕ່ຳ(ເລນ) ACK_SUCCUSS
ACK_FAIL0 CHK 0xF5 2) ຊຸດຂໍ້ມູນ
ໄບຕ໌ 1 2 3 4—ເລນ+1 Len+2 Len+3 ACK 0xF5 ID ຜູ້ໃຊ້ (ສູງ 8 ບິດ) ID ຜູ້ໃຊ້ (ຕໍ່າ 8 ບິດ) ຂໍ້ມູນຜູ້ໃຊ້ (ລະຫັດຜູ້ໃຊ້ແລະການອະນຸຍາດ) CHK 0xF5 ໝາຍເຫດ:
ຄວາມຍາວຂໍ້ມູນຂອງຊຸດຂໍ້ມູນ (Len) ແມ່ນ ”3*User ID+2”
ຮູບແບບຂໍ້ມູນຜູ້ໃຊ້:ໄບຕ໌ 4 5 6 7 8 9 … ຂໍ້ມູນ User ID1 (ສູງ 8 ບິດ) User ID1 (ຕ່ຳ 8 ບິດ) ການອະນຸຍາດຜູ້ໃຊ້ 1 (1/2/3) User ID2 (ສູງ 8 ບິດ) User ID2 (ຕ່ຳ 8 ບິດ) ການອະນຸຍາດຜູ້ໃຊ້ 2 (1/2/3) …
- ຕັ້ງ/ສອບຖາມໝົດເວລາຈັບລາຍນິ້ວມື (CMD/ACK ທັງ 8 Byte)
ໄບຕ໌ 1 2 3 4 5 6 7 8 CMD 0xF5 0x2E 0 Byte5=0: ໝົດເວລາ
Byte5=1:00: ກໍານົດເວລາຫມົດເວລາ
1: ໝົດເວລາການສອບຖາມ0 CHK 0xF5 ACK 0xF5 0x2E 0 ໝົດເວລາ ACK_SUCCUSS
ACK_FAIL0 CHK 0xF5 ໝາຍເຫດ:
ຊ່ວງເວລາລໍຖ້າລາຍນິ້ວມື (tout) ຄ່າແມ່ນ 0-255. ຖ້າຄ່າແມ່ນ 0, ຂະບວນການໄດ້ຮັບລາຍນິ້ວມືຈະສືບຕໍ່ຖ້າບໍ່ມີລາຍນິ້ວມືກົດໃສ່; ຖ້າຄ່າບໍ່ແມ່ນ 0, ລະບົບຈະມີຢູ່ສໍາລັບເຫດຜົນຂອງການຫມົດເວລາຖ້າບໍ່ມີ fingerprints ກົດຢູ່ໃນເວລາ tout * T0.
ໝາຍເຫດ: T0 ແມ່ນເວລາທີ່ຕ້ອງການສໍາລັບການເກັບກໍາ / ການປຸງແຕ່ງຮູບພາບ, ໂດຍປົກກະຕິ 0.2- 0.3 s.
ຂະບວນການສື່ສານ
ເພີ່ມລາຍນິ້ວມື
ລຶບຜູ້ໃຊ້
ລຶບຜູ້ໃຊ້ທັງໝົດ
ໄດ້ມາຮູບພາບແລະອັບໂຫລດ EIGENVALUE
ຄູ່ມືຜູ້ໃຊ້
ຖ້າທ່ານຕ້ອງການເຊື່ອມຕໍ່ໂມດູນລາຍນິ້ວມືກັບ PC, ທ່ານຈໍາເປັນຕ້ອງຊື້ຫນຶ່ງ UART ກັບໂມດູນ USB. ພວກເຮົາແນະນໍາໃຫ້ທ່ານໃຊ້ Waveshare FT232 USB UART Board (ໄມໂຄ) ໂມດູນ.
ຖ້າທ່ານຕ້ອງການເຊື່ອມຕໍ່ໂມດູນ fingerprint ກັບກະດານພັດທະນາເຊັ່ນ Raspberry Pi, ຖ້າເຮັດວຽກ
ລະດັບຂອງກະດານຂອງທ່ານແມ່ນ 3.3V, ທ່ານສາມາດເຊື່ອມຕໍ່ໂດຍກົງກັບ UART ແລະ GPIO pins ຂອງກະດານຂອງທ່ານ. ຖ້າມັນເປັນ 5V, ກະລຸນາເພີ່ມລະດັບການແປງໂມດູນ / ວົງຈອນ.
ຕິດຕໍ່ກັບ PC
ການເຊື່ອມຕໍ່ຮາດແວ TION
ທ່ານຕ້ອງການ:
- ເຊັນເຊີລາຍນິ້ວມື UART (C)*1
- FT232 USB UART Board *1
- ສາຍ micro USB *1
ເຊື່ອມຕໍ່ໂມດູນລາຍນິ້ວມື ແລະ FT232 USB UART Board ກັບ PC
ເຊັນເຊີລາຍນິ້ວມື UART (C) | FT232 USB UART Board |
ວີຊີຊີ | ວີຊີຊີ |
GND | GND |
RX | TX |
TX | RX |
RST | NC |
ລະວັງ | NC |
ການທົດສອບ
- ດາວໂຫຼດຊອບແວທົດສອບເຊັນເຊີລາຍນິ້ວມື UART ຈາກ wiki
- ເປີດຊອຟແວແລະເລືອກພອດ COM ທີ່ຖືກຕ້ອງ.(ຊອຟແວສາມາດຮອງຮັບ COM1~COM8 ເທົ່ານັ້ນ, ຖ້າພອດ COM ໃນ PC ຂອງທ່ານຢູ່ນອກຂອບເຂດນີ້, ກະລຸນາແກ້ໄຂມັນ)
- ການທົດສອບ
ມີຫຼາຍຫນ້າທີ່ສະຫນອງໃຫ້ຢູ່ໃນການໂຕ້ຕອບການທົດສອບ
- ຈໍານວນຄໍາຖາມ
ເລືອກ ນັບ, ຈາກນັ້ນຄລິກ ສົ່ງ. ຈຳນວນຜູ້ໃຊ້ຖືກສົ່ງຄືນ ແລະສະແດງຢູ່ໃນຂໍ້ມູນ ຕອບສະໜອງ ການໂຕ້ຕອບ - ເພີ່ມຜູ້ໃຊ້
ເລືອກ ເພີ່ມຜູ້ໃຊ້, ກວດເບິ່ງ ໄດ້ມາສອງຄັ້ງ ແລະ Auto ID+1, ພິມ ID (P1 ແລະ P2) ແລະການອະນຸຍາດ (P3), ຈາກນັ້ນກົດເຂົ້າ ສົ່ງ. ສຸດທ້າຍ, ເຊັນເຊີສໍາຜັດເພື່ອໃຫ້ໄດ້ລາຍນິ້ວມື. - ລຶບຜູ້ໃຊ້
ເລືອກທີ່ຈະ ລຶບຜູ້ໃຊ້, ພິມ ID (P1 ແລະ P2) ແລະການອະນຸຍາດ (P3), ຫຼັງຈາກນັ້ນໃຫ້ຄລິກໃສ່ສົ່ງ. - ລຶບຜູ້ໃຊ້ທັງໝົດ
ເລືອກ ລຶບຜູ້ໃຊ້ທັງໝົດ, ຫຼັງຈາກນັ້ນໃຫ້ຄລິກໃສ່ສົ່ງ - ການປຽບທຽບ 1:1
ເລືອກ 1:1 ການປຽບທຽບ, ພິມ ID (P1 ແລະ P2) ແລະການອະນຸຍາດ (P3), ຈາກນັ້ນກົດເຂົ້າ ສົ່ງ. - ການປຽບທຽບ 1: ນ
ເລືອກ 1: N ການປຽບທຽບ, ຈາກນັ້ນຄລິກ ສົ່ງ.
…
ສໍາລັບຟັງຊັນເພີ່ມເຕີມ, ກະລຸນາທົດສອບມັນ. (ບາງຟັງຊັນບໍ່ສາມາດໃຊ້ໄດ້ສຳລັບໂມດູນນີ້)
ເຊື່ອມຕໍ່ຫາ XNUCLEO-F103RB
ພວກເຮົາໃຫ້ລະຫັດຕົວຢ່າງສໍາລັບ XNCULEO-F103RB, ທີ່ທ່ານສາມາດດາວໂຫລດໄດ້ຈາກ wiki.
ເຊັນເຊີລາຍນິ້ວມື UART (C) | NUCLEO-F103RB |
ວີຊີຊີ | 3.3V |
GND | GND |
RX | PA9 |
TX | PA10 |
RST | PB5 |
ລະວັງ | PB3 |
ໝາຍເຫດ: ກ່ຽວກັບ pins, ກະລຸນາອ້າງອີງເຖິງ ການໂຕ້ຕອບ ຂ້າງເທິງ
- ເຊື່ອມຕໍ່ເຊັນເຊີລາຍນິ້ວມື UART (C) ກັບ XNUCLEO_F103RB, ແລະເຊື່ອມຕໍ່ໂປຣແກຣມເມີ
- ເປີດໂຄງການ (ລະຫັດຕົວຢ່າງ) ໂດຍຊອບແວ keil5
- ກວດເບິ່ງວ່າໂປລແກລມແລະອຸປະກອນຖືກຮັບຮູ້ໂດຍປົກກະຕິ
- ລວບລວມແລະດາວໂຫລດ
- ເຊື່ອມຕໍ່ XNUCELO-F103RB ກັບ PC ດ້ວຍສາຍ USB, ເປີດຊອບແວການຊ່ວຍເຫຼືອ Serial, ຕັ້ງພອດ COM: 115200, 8N1
ພິມຄໍາສັ່ງເພື່ອທົດສອບໂມດູນຕາມຂໍ້ມູນທີ່ສົ່ງມາ.
ເຊື່ອມຕໍ່ກັບ RASPBERRY PI
ພວກເຮົາໃຫ້ python example ສໍາລັບ Raspberry Pi, ທ່ານສາມາດດາວໂຫລດໄດ້ຈາກ wiki
ກ່ອນທີ່ທ່ານຈະໃຊ້ exampດັ່ງນັ້ນ, ທ່ານຄວນເປີດໃຊ້ພອດ serial ຂອງ Raspberry Pi ກ່ອນ:
ຄໍາສັ່ງປ້ອນຂໍ້ມູນໃສ່ Terminal: Sudo raspi-config
ເລືອກ: Interfacing Options -> Serial -> No -> Yes
ຈາກນັ້ນປິດເປີດໃໝ່.
ເຊັນເຊີລາຍນິ້ວມື UART (C) | Raspberry Pi |
ວີຊີຊີ | 3.3V |
GND | GND |
RX | 14 (BCM) – PIN 8 (ກະດານ) |
TX | 15 (BCM) – PIN 10 (ກະດານ) |
RST | 24 (BCM) – PIN 18 (ກະດານ) |
ລະວັງ | 23 (BCM) – PIN 16 (ກະດານ) |
- ເຊື່ອມຕໍ່ໂມດູນລາຍນິ້ວມືກັບ Raspberry Pi
- ດາວໂຫລດລະຫັດຕົວຢ່າງເພື່ອ Raspberry Pi: wget https://www.waveshare.com/w/upload/9/9d/UART-Fignerprint-RaspberryPi.tar.gz
- unzip ມັນ
tar zxvf UART-Fingerprint-RaspberryPi.tar.gz - ດໍາເນີນການ example
cd UART-Fingerprint-RaspberryPi/sudo python main.py - ປະຕິບັດຕາມຄໍາແນະນໍາເພື່ອທົດສອບ
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
ເຊັນເຊີລາຍນິ້ວມື WAVESHARE STM32F205 UART [pdf] ຄູ່ມືຜູ້ໃຊ້ STM32F205, ເຊັນເຊີລາຍນິ້ວມື UART, ເຊັນເຊີລາຍນິ້ວມື STM32F205 UART, ເຊັນເຊີລາຍນິ້ວມື |