ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
RFID Reader 13.56MHz (ISO14443A)
2
หัวข้อการอบรม ช่วงเช้า 9:00-12:00
เรียนรู้โครงสร้างและการทำงานของเครื่องอ่าน RFID 13.56MHz ตามมาตรฐานISO14443A เรียนรู้เทคนิคและคำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน RFID เรียนรู้โครงสร้างข้อมูลของTagที่ใช้งาน ช่วงบ่าย 13:00-16:00 พัฒนาซอฟต์แวร์สำหรับใช้งานจริงร่วมกับฐานข้อมูล(ด้วยโครงการตัวอย่างที่ใช้งานจริง) การออกแบบโครงสร้างข้อมูลบนบัตรเพื่อความปลอดภัยของข้อมูล เทคนิคการจัดเก็บข้อมูลบนบัตร การทำงานกับฟังก์ชั่นทางการเงินบนบัตร การทำงานร่วมกับฐานข้อมูล
3
เตรียมความพร้อมก่อนอบรม
เครื่องคอมพิวเตอร์ มีโปรแกรม Visual Basic 6 มี USB Port ว่าง 1 Port มีสายแปลงสัญญาณ RS232 เป็น USB มีฐานข้อมูล My SQL version 5.0 (Win32) หรือversionใหม่กว่า แผงวงจรเครื่องอ่าน RFID 13.56MHz (ISO14443A) Tag ตัวอย่าง Mifare Card 1K และ 4K
4
โครงสร้างและการทำงานของเครื่องอ่าน RFID 13.56MHz ตามมาตรฐาน ISO14443A
MF RC500 MCU STC89C52RC MAX232 LED
5
โครงสร้างและการทำงานของเครื่องอ่าน RFID 13.56MHz ตามมาตรฐาน ISO14443A
แบบ USB แบบ RS232
6
โครงสร้างการจัดการหน่วยความจำบนบัตร Mifare 1 K
7
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
rf_init_com(ByVal port&, ByVal baud&) As Long คำสั่งในการเชื่อมต่อกับเครื่องอ่าน rf_ClosePort Lib () As Long คำสั่งในการยกเลือกการเชื่อมต่อกับเครื่องอ่าน rf_request(ByVal icdev%, ByVal model As Byte, _ ByRef TagType%) As Long คำสั่งในการเลือกโหมดในการอ่าน Tag 0x26 REQ_STD 0x52 REQ_ALL
8
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
rf_anticoll(ByVal icdev%, ByVal bcnt As Byte, _ ByRef ppsnr As Byte, ByRef pRLength As Byte) As Long คำสั่งในการอ่าน Serial Card rf_select(ByVal icdev%, ByRef pSnr As Byte, _ ByVal srclen As Byte, ByRef size As Byte) As Long คำสั่งในการเลือก Card สำหรับการอ่านเขียนข้อมูลใน Card นั้น
9
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
rf_M1_authentication2(ByVal icdev%, ByVal model As Byte, _ ByVal block As Byte, ByRef key As Byte) As Long คำสั่งในการเข้ารหัสในการอ่าน-เขียนข้อมูลแต่ละ Sactor rf_M1_read(ByVal icdev%, ByVal block As Byte, _ ByRef buff As Byte, ByRef pLen As Byte) As Long คำสั่งในการอ่านข้อมูลแต่ละBlock ของ Sactor
10
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
rf_M1_write(ByVal icdev%, ByVal block As Byte, _ ByRef buff As Byte) As Long คำสั่งในการเขียนข้อมูลลงแต่ละ Block rf_M1_initval(ByVal icdev%, ByVal block As Byte, ByVal Value As Long) As Long คำสั่งในการ Reset ค่าเงินให้เป็น 0 แต่ละ Block rf_M1_readval(ByVal icdev%, ByVal block As Byte, ByRef pValue As Byte) As Long คำสั่งในการอ่านค่าเงินจาก Block
11
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
rf_M1_increment(ByVal icdev%, ByVal block As Byte, ByVal Value As Long) As Long คำสั่งในการเพิ่มค่าเงินให้แต่ละ Block rf_M1_decrement(ByVal icdev%, ByVal block As Byte, ByVal Value As Long) As Long คำสั่งในการลบค่าเงินของแต่ละ Block rf_beep(ByVal icdev%, ByVal Value As Long) As Long คำสั่งสำหรับสั่งให้เครื่องอ่านส่งเสียง Alarm (ความยาวของ Alarm ตามค่า Parameter ที่ส่งไป) rf_light(ByVal icdev%, ByVal color As Long) As Long คำสั่งในการส่งค่าให้เครื่องอ่านเปลี่ยนสีของ LED 1: แดง 2: เขียว 3:เหลือง
12
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
13
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, j%, port&, baud&, buf1(200) As Byte, b1 As Byte, s1$ port = cb_ckh.ListIndex + 1 If (port = 0) Then lb_info.Caption = "Please select COM Port!" End If baud = CLng(cb_btl.Text) If (baud = 0) Then lb_info.Caption = "Please select Baud rate!" 'Open Port i = rf_init_com(port, baud)
14
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
If (i <> 0) Then MsgBox "Open Port Fail!" Exit Sub Else MsgBox "Open Port succeed !" Command12.Enabled = False Command13.Enabled = True End If
15
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i As Long i = rf_ClosePort If (i <> 0) Then MsgBox "Close Port Fail!" Exit Sub Else MsgBox "Close Port succeed !" Command12.Enabled = True Command13.Enabled = False End If
16
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
17
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, j%, port&, baud&, buf1(200) As Byte, b1 As Byte, s1$ i = rf_request(0, &H52, j) If (i <> 0) Then lb_info.Caption = "Request Fail!" Exit Sub End If 'Anticollision i = rf_anticoll(0, 4, buf1(0), b1) lb_info.Caption = "Anticollision Fail!" s1 = "" For i = 0 To b1 - 1 s1 = s1 & Right("00" & Hex(buf1(i)), 2) Next i
18
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
tx_kh.Text = s1 'Select card i = rf_select(0, buf1(0), 4, b1) If (i <> 0) Then lb_info.Caption = "Select card fail!" Exit Sub Else lb_info.Caption = "Select card succeed!" End If
19
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Sub Authentication() Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte s1 = Trim(frm_main.tx_key.Text) If (Len(s1) <> 12) Then frm_main.lb_info.Caption = "Wrong Key Length!" frm_main.tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'm = cb_kh.ListIndex m = (frm_main.cboSacter.Text * 4) + frm_main.cb_kh.Text If (m = -1) Then frm_main.lb_info.Caption = "Select Block Please!"
20
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
If (frm_main.op_a.Value) Then b1 = &H60 End If If (frm_main.op_b.Value) Then b1 = &H61 b3 = CByte(m) 'Authentication i = rf_M1_authentication2(0, b1, b3, buf1(0)) If (i <> 0) Then frm_main.lb_info.Caption = "Authentication Fail£¡" frm_main.tx_sj.Text = "" Exit Sub End Sub
21
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'm = cb_kh.ListIndex If Trim(cboSacter.Text) = "" Or Trim(cb_kh.Text) = "" Then MsgBox "Select Block Please!"
22
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
m = (cboSacter.Text * 4) + cb_kh.Text If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If If (op_a.Value) Then b1 = &H60 If (op_b.Value) Then b1 = &H61 b3 = CByte(m) 'Authentication Call Authentication 'Read card
23
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
i = rf_M1_read(0, b3, buf2(0), b2) If (i <> 0) Then lb_info.Caption = "Read Card Fail!" Exit Sub End If s1 = "" For i = 0 To b2 - 1 s1 = s1 & Right("00" & Hex(buf2(i)), 2) Next i tx_sj.Text = s1 lb_info.Caption = "Read Succeed!"
24
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + cb_kh.Text If (m = -1) Then lb_info.Caption = "Select Block Please!"
25
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 s1 = Trim(tx_sj.Text) If (Len(s1) <> 32) Then lb_info.Caption = "Wrong Data length " tx_sj.SetFocus Exit Sub For i = 0 To 15 buf2(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i
26
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
b3 = CByte(m) Call Authentication 'Write card i = rf_M1_write(0, b3, buf2(0)) If (i <> 0) Then lb_info.Caption = "Write Card Fail£¡" Exit Sub End If lb_info.Caption = "Write Succeed!"
27
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
ฟังก์ชั่นการเงิน
28
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte Call Authentication s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i m = cb_kh.ListIndex If (m = -1) Then lb_info.Caption = "Select Block Please!"
29
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + cb_kh.Text b3 = CByte(m) 'Authentication
30
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
i = rf_M1_authentication2(0, b1, b3, buf1(0)) If (i <> 0) Then lb_info.Caption = "Authentication Fail£¡" tx_sj.Text = "" Exit Sub End If If rf_M1_initval(0, b3, 0) = 0 Then MsgBox "Initialize Value succeed !" Else MsgBox "Initialize Value Fail !"
31
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte Dim a As Byte s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i m = cb_kh.ListIndex If (m = -1) Then lb_info.Caption = "Select Block Please!"
32
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + cb_kh.Text If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 b3 = CByte(m) 'Authentication i = rf_M1_authentication2(0, b1, b3, buf1(0)) If (i <> 0) Then lb_info.Caption = "Authentication Fail£¡" tx_sj.Text = "" Exit Sub
33
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
If rf_M1_readval(0, b3, buf1(0)) = 0 Then ' MsgBox "Initialize Value succeed !" ' edAddMoney.Text = CLng(a) Dim xx As String Dim si As String Dim k As Integer For k = 0 To 3 si = si & IIf(Len(Hex(buf1(k))) < 2, "0" & Hex(buf1(k)), Hex(buf1(k))) Next edAddMoney.Text = a2hex(si, Len(si)) Else MsgBox "Initialize Value Fail !" End If
34
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte Call Authentication s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If m = (cboSacter.Text * 4) + cb_kh.Text If (m = -1) Then lb_info.Caption = "Select Block Please!"
35
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + cb_kh.Text If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 b3 = CByte(m) If rf_M1_increment(0, b3, (edAddMoney.Text)) = 0 Then MsgBox "increment Value succeed !" Else MsgBox "increment Value Fail !"
36
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If If (m = -1) Then lb_info.Caption = "Select Block Please!"
37
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
m = (cboSacter.Text * 4) + cb_kh.Text If (op_a.Value) Then b1 = &H60 End If If (op_b.Value) Then b1 = &H61 b3 = CByte(m) 'Authentication i = rf_M1_authentication2(0, b1, b3, buf1(0)) If (i <> 0) Then lb_info.Caption = "Authentication Fail£¡" tx_sj.Text = "" Exit Sub
38
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
If rf_M1_decrement(0, b3, CLng(edAddMoney.Text)) = 0 Then MsgBox "decrement Value succeed !" Else MsgBox "decrement Value Fail !" End If
39
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
If rf_beep(0, CLng(txtbeeptime.Text)) <> 0 Then MsgBox "Alarm Fail!" End If
40
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim iColor As Long If Option1.Value = True Then iColor = 1 ElseIf Option2.Value = True Then iColor = 2 ElseIf Option3.Value = True Then iColor = 3
41
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Else iColor = 0 End If If rf_light(0, iColor) <> 0 Then MsgBox "Light Fail!"
42
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus Exit Sub End If For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i
43
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
If Trim(cboSacter.Text) = "" Or Trim(cb_kh.Text) = "" Then MsgBox "Select Block Please!" Exit Sub End If m = (cboSacter.Text * 4) + 3 If (m = -1) Then lb_info.Caption = "Select Block Please!" If (op_a.Value) Then b1 = &H60 If (op_b.Value) Then b1 = &H61
44
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
b3 = CByte(m) i = rf_M1_authentication2(0, b1, b3, buf1(0)) 'Read card i = rf_M1_read(0, b3, buf2(0), b2) If (i <> 0) Then lb_info.Caption = "Read Card Fail!" Exit Sub End If s1 = "" For i = 0 To b2 - 1 s1 = s1 & Right("00" & Hex(buf2(i)), 2) Next i txtnewkey.Text = Mid(s1, 1, 12) txtAccessBit.Text = Mid(s1, 13, 8) txtnewkeyB.Text = Mid(s1, 21, 12) lb_info.Caption = "Read Succeed!"
45
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
Dim i&, m&, buf1(200) As Byte, buf2(200) As Byte, s1$, b1 As Byte, b2 As Byte, b3 As Byte If MsgBox("Be sure to write key", vbQuestion + vbYesNo, "") = vbNo Then Exit Sub If Trim(txtnewkey.Text) = "" Then MsgBox "Wrong Key Length!" txtnewkey.SetFocus Exit Sub End If s1 = Trim(tx_key.Text) If (Len(s1) <> 12) Then lb_info.Caption = "Wrong Key Length!" tx_key.SetFocus
46
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
For i = 0 To 5 buf1(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'm = cb_kh.ListIndex m = (cboSacter.Text * 4) + 3 If (m = -1) Then lb_info.Caption = "Select Block Please!" Exit Sub End If If (op_a.Value) Then b1 = &H60 If (op_b.Value) Then b1 = &H61
47
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
s1 = Trim(txtnewkey.Text) & txtAccessBit.Text & txtnewkeyB.Text '"FFFFFFFFFFFF" ' FF : Key A 7F : Key B Accessbit =============== If (Len(s1) <> 32) Then lb_info.Caption = "Wrong Data length " tx_sj.SetFocus Exit Sub End If For i = 0 To 15 buf2(i) = Val("&H" & Mid(s1, i * 2 + 1, 2)) Next i 'Authentication b3 = CByte(m) i = rf_M1_authentication2(0, b1, b3, buf1(0)) 'Write card
48
คำสั่งต่างๆที่เกี่ยวข้อง กับ เครื่องอ่าน
i = rf_M1_write(0, b3, buf2(0)) If (i <> 0) Then lb_info.Caption = "Write Card Fail" Exit Sub End If lb_info.Caption = "Write Succeed!"
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.