盧彬鋒
摘要 當(dāng)前校園安全事件屢屢發(fā)生,給社會(huì)、家庭帶來(lái)了極大地影響,校園安全設(shè)施設(shè)備的研發(fā)也是當(dāng)前校園安全研究領(lǐng)域的熱點(diǎn)。鑒于此,該研究從智能化識(shí)別設(shè)備研發(fā)的角度切入,基于STC15F2K60S2單片機(jī)設(shè)計(jì)小學(xué)生離校顯示系統(tǒng)。該系統(tǒng)由單片機(jī)模塊、射頻模塊、顯示模塊、驅(qū)動(dòng)模塊和穩(wěn)壓模塊組成,通過(guò)雙色LED燈屏實(shí)時(shí)顯示學(xué)校各個(gè)班級(jí)狀態(tài),方便家長(zhǎng)接孩子時(shí)根據(jù)信息提示了解是否在校,為家長(zhǎng)提前了解孩子信息提供了很好的幫助,也為校園安全保障設(shè)施的研發(fā)普及提供一定的實(shí)踐參考。
關(guān)鍵詞 考勤;單片機(jī);SON1205
中圖分類號(hào) TP334.2文獻(xiàn)標(biāo)識(shí)碼 A文章編號(hào) 2096-8949(2022)09-0008-03
引言
全國(guó)各地屢次發(fā)生的校園安全事件,促使政府和各級(jí)教育機(jī)構(gòu)啟動(dòng)了一系列校園安全漏洞檢查和安全措施。校園安全工作開(kāi)展的好與壞,關(guān)系著所有學(xué)生的健康成長(zhǎng),關(guān)系到千家萬(wàn)戶的幸福,為此相關(guān)部門(mén)和學(xué)校紛紛出臺(tái)對(duì)應(yīng)的政策。其中很多學(xué)校就要求低年級(jí)學(xué)生上學(xué)必須每天由家長(zhǎng)負(fù)責(zé)接送,學(xué)生不能獨(dú)自上學(xué)。因此,部分中小學(xué)學(xué)生上學(xué)和放學(xué),都需要家長(zhǎng)陪同。當(dāng)前家長(zhǎng)接送過(guò)程中也出現(xiàn)部分問(wèn)題:
(1)大部分的家庭都是老年人負(fù)責(zé)該項(xiàng)工作,部分老年群體存在智能手機(jī)使用障礙。
(2)各種原因?qū)е峦荒昙?jí)存在錯(cuò)峰放學(xué)問(wèn)題。
(3)放學(xué)高峰期,學(xué)生一涌而出,導(dǎo)致接送的家長(zhǎng)和孩子錯(cuò)過(guò),家長(zhǎng)無(wú)法掌握學(xué)生是否離校。
為了方便家長(zhǎng)及時(shí)了解孩子是在校還是離校,是上課還是放學(xué),該文以STC15F2K60S2單片機(jī)為核心模塊,結(jié)合射頻識(shí)別(RFID)技術(shù)[1-3]和LED顯示技術(shù)設(shè)計(jì)了小學(xué)生離校顯示系統(tǒng)。該系統(tǒng)通過(guò)雙色LED燈分別顯示學(xué)生在校上學(xué)、放學(xué)和離校的狀態(tài),到校家長(zhǎng)可以通過(guò)系統(tǒng)顯示及時(shí)掌握孩子的狀況,減少盲目等待,較好的完成接送工作。
1 系統(tǒng)硬件設(shè)計(jì)
設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)圖如圖1所示。
從圖1可得系統(tǒng)包括以下模塊:?jiǎn)纹瑱C(jī)模塊、MFRC522讀寫(xiě)器及電源驅(qū)動(dòng)模塊、點(diǎn)陣顯示及其驅(qū)動(dòng)模塊和LED指示模塊構(gòu)成。主要模塊分別介紹如下:
1.1 單片機(jī)模塊
該系統(tǒng)的核心部分是單片機(jī),通過(guò)它來(lái)完成系統(tǒng)的信息采集、處理和控制,因此在單片機(jī)的選擇中主要考慮到單片機(jī)的計(jì)算速度、處理器的能力、片內(nèi)RAM和ROM及成本等因素。在系統(tǒng)設(shè)計(jì)中選用了STC15F2K60S2單片機(jī),該芯片低功耗、擁有高性能的CMOS8位微處理器,運(yùn)行速度相當(dāng)于傳統(tǒng)8051單片機(jī)的12倍,并具有較大的程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間,編程下載可直接使用串口完成,使用非常方便。
1.2 點(diǎn)陣顯示及其驅(qū)動(dòng)模塊
1.2.1 點(diǎn)陣顯示模塊
系統(tǒng)中為了能夠在一個(gè)顯示點(diǎn)表示上課、下課和是否缺席等不同的信息,采用了雙色LED點(diǎn)陣屏來(lái)實(shí)現(xiàn),最終選取8×8紅綠雙色共陰點(diǎn)陣。
采用紅綠雙色LED可以實(shí)現(xiàn)三種顏色的顯示效果,具體的LED狀態(tài)組合由按鍵觸發(fā)和刷卡觸發(fā)兩種方式。
在按鍵電路如圖2所示,分為上學(xué)、放學(xué)按鍵和班級(jí)選擇按鍵等,分別連接著STC15F2K60S2的P2.0、P2.1、P2.2、P2.3、P2.4、P2.5、P2.6和P2.7等I/O口。系統(tǒng)通過(guò)上學(xué)按鍵觸發(fā)來(lái)點(diǎn)亮紅色點(diǎn)陣的顯示,當(dāng)LED燈顯示紅色表示該班級(jí)學(xué)生為上課狀態(tài);通過(guò)放學(xué)按鍵觸發(fā)紅綠點(diǎn)陣同時(shí)顯示為黃色,當(dāng)LED燈顯示黃色表示該班級(jí)學(xué)生為下課狀態(tài)。而班級(jí)切換按鍵中,由于單片機(jī)I/O有限及該系統(tǒng)只是一個(gè)初步模擬系統(tǒng),所以僅設(shè)計(jì)了六個(gè)班級(jí)之間的切換。
在刷卡觸發(fā)方式中,通過(guò)錄入有學(xué)生學(xué)號(hào)和班級(jí)信息的MIFARE1卡來(lái)刷卡觸發(fā)點(diǎn)陣的顏色切換。即學(xué)生將持有個(gè)人信息的MIFARE射頻卡通過(guò)MFRC522讀寫(xiě)器刷卡切換離校和到校狀態(tài),而通過(guò)點(diǎn)陣的綠色顯示學(xué)生離校的狀態(tài),也只有當(dāng)學(xué)生由離校刷卡切換到到校時(shí),點(diǎn)陣上的綠色才能轉(zhuǎn)變?yōu)辄S色的到校狀態(tài),即如果學(xué)生缺席或未到校,即使通過(guò)上課按鍵也無(wú)法將點(diǎn)陣的綠色離校狀態(tài)切換成紅色的上課狀態(tài)。
1.2.2 點(diǎn)陣顯示驅(qū)動(dòng)模塊
系統(tǒng)選用LED驅(qū)動(dòng)專用的TM1640作為驅(qū)動(dòng)模塊。
TM1640是一種LED驅(qū)動(dòng)專用控制器件,內(nèi)部集成有數(shù)據(jù)鎖存器、MCU數(shù)字接口、LED高壓驅(qū)動(dòng)電路等。具有8級(jí)可調(diào)的輝度調(diào)節(jié)可以方便地根據(jù)不同的天氣情況調(diào)整LED的亮度,實(shí)現(xiàn)LED亮度可以實(shí)時(shí)調(diào)整,既可以達(dá)到顯示清晰又不刺眼的目的,又可以實(shí)現(xiàn)省電功能。兩線的串行接口可以方便地和單片機(jī)進(jìn)行通信。
1.3 MIFARE射頻卡
MIFARE射頻卡是Philips公司推出的一種射頻卡[3],該射頻卡已經(jīng)成為國(guó)際標(biāo)準(zhǔn):IOS/IEC 14443標(biāo)準(zhǔn),也是目前主流的射頻卡。
MIFARE射頻卡內(nèi)部集成高速CMOS EEPROM、MCU等。工作的頻率在13.56 MHz,標(biāo)準(zhǔn)讀寫(xiě)距離100 mm,與讀寫(xiě)器的通信速率為106 kbit/s。
MIFARE射頻卡擁有如下優(yōu)點(diǎn):
(1)具有通信加密功能。
(2)讀寫(xiě)操作高速而準(zhǔn)確。
(3)卡片讀寫(xiě)可超10萬(wàn)多次,且數(shù)據(jù)保存可達(dá)10年之久,具有抗靜電保護(hù)能力。
1.4 MFRC522讀寫(xiě)器
MFRC522是一款基于13.56 MHz的非接觸式通信的高集成度讀寫(xiě)卡芯片[4-8]。具有低電壓、低成本、小體積的優(yōu)點(diǎn),是一款使用非常廣泛的非接觸式讀寫(xiě)卡芯片。主要應(yīng)用于門(mén)禁系統(tǒng)、智能水表和便攜式手持設(shè)備等。
MFRC522的主要特點(diǎn)如下:
(1)芯片的通信頻率在13.56 MHz,因此可用于在該頻率下的被動(dòng)非接觸式通信方式和通信協(xié)議。
(2)芯片支持ISO14443A的多層應(yīng)用,這使得它的體積可以更小,在驅(qū)動(dòng)讀寫(xiě)器天線與MIFARE卡和應(yīng)答機(jī)之間的通信時(shí)可以不需要外圍電路。
(3)芯片的內(nèi)部自帶解調(diào)電路和解碼電路完成接收功能,并且該電路兼容ISO14443A的應(yīng)答器信號(hào)。
(4)芯片的校驗(yàn)功能具有幀和錯(cuò)誤檢測(cè)(奇偶&CRC)。
(5)芯片具有快速 CRYPTO1加密算法和高速的通信速率。
2 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的主流程圖如圖3所示,由開(kāi)機(jī)、各模塊初始化、讀卡、按鍵掃描和顯示更新等構(gòu)成。開(kāi)機(jī)完成系統(tǒng)上電后負(fù)責(zé)各個(gè)模塊的初始化、自檢、單片機(jī)自身資源的初始化。系統(tǒng)主程序由讀卡、按鍵掃描和顯示更新構(gòu)成,完成控制和協(xié)調(diào)各個(gè)模塊的正常工作。
下面針對(duì)其中的主要模塊MFRC522和TM1640的驅(qū)動(dòng)程序進(jìn)行介紹。
2.1 MFRC522驅(qū)動(dòng)程序設(shè)計(jì)
在系統(tǒng)設(shè)計(jì)中MFRC522模塊使用的是SPI接口,與單片機(jī)的連接為:
(1)NRSTPD連接單片機(jī)的P1.4。
(2)CS連接單片機(jī)的P1.0。
(3)SCK連接單片機(jī)的P1.1。
(4)MOSI連接單片機(jī)的P1.2。
(5)MISO連接單片機(jī)的P1.3。
MFRC522的工作過(guò)程可分成四步:尋卡→防沖突→選卡→讀/寫(xiě)卡。
2.1.1 尋卡
status=? MFRC522_Request(PICC_REQIDL,str);? //尋卡,返回卡的類型 If? (status ==MI_OK)
{
Uart1_SendChar(str[0]);
Uart 1_SendChar(str[1]);
}
在以上程序中向FIFO寫(xiě)入PICC_REQIDL命令,等待執(zhí)行PCD_TRANSCEIVE命令將FIFO中數(shù)據(jù)通過(guò)天線發(fā)送出去。如果有卡在天線的作用范圍內(nèi),那么通過(guò)卡通信返回卡類型。如果沒(méi)有則無(wú)返回?cái)?shù)據(jù)。
具體卡類型的代碼如表1所示。
2.1.2 防沖突
由于是非接觸式的IC卡,所以在同一時(shí)間可能存在多張卡的讀寫(xiě),這時(shí)對(duì)于讀寫(xiě)器的識(shí)別便會(huì)產(chǎn)生沖突。根據(jù)每張卡的卡序列號(hào)都不相同,根據(jù)接收到的卡序列號(hào)信息中具有至少有1位既是0又是1 (即該位的前、后半部都有副載波調(diào)制)的特點(diǎn),因此可以根據(jù)第1個(gè)沖突位將其置1,然后再校驗(yàn)第2個(gè),通過(guò)該方法可以排除多余的卡,這個(gè)過(guò)程重復(fù)執(zhí)行直到某張卡沒(méi)有產(chǎn)生沖突時(shí)才選中該卡。具體程序如下。
status? = MFRC522_Anticoll(str);? //防沖突,返回卡的序列號(hào)4字節(jié)
memcpy(serNum,? str,? 5);
If? (status ==MI_OK)
{
Uart1 _SendChar(ser_Num[0]);
Uart1_SendChar(ser_Num[1]);
Uart1_SendChar(ser_Num[2]);
Uart1_SendChar(ser_Num[3]);
Uart1_SendChar(ser_Num[4]);
}
2.1.3 選卡
選卡程序如下:
Size = MFRC522_SelectTag(ser_Num); //返回卡容量
If? (size !=0)
{
Uart1_SendChar(size);
}
2.2 TM1640驅(qū)動(dòng)程序設(shè)計(jì)
由于單片機(jī)的I/O有限無(wú)法滿足點(diǎn)陣的驅(qū)動(dòng),所以系統(tǒng)中選用了LED驅(qū)動(dòng)專用的TM1640來(lái)作為驅(qū)動(dòng)模塊。
以下指令用來(lái)設(shè)置顯示器的顯示模式和LED驅(qū)動(dòng)器的不同狀態(tài)。首先只有當(dāng)指令START有效后,才能通過(guò)DIN輸入的第一條指令。再經(jīng)過(guò)譯碼取得最高位的比特位來(lái)區(qū)別不同的指令。
/******初始化TM1640******/
void init_tm1640_1()
{
sda4=1;
scl4=1;
start_1();
write_1(0x44); //設(shè)置數(shù)據(jù)
}
其指令設(shè)置分類如表2所示。
表2 指令設(shè)置表
B7 B6 指令
0 1 數(shù)據(jù)命令設(shè)置
1 0 顯示控制命令設(shè)置
1 1 地址命令設(shè)置
3 結(jié)束語(yǔ)
本系統(tǒng)由硬件設(shè)備及軟件設(shè)計(jì)兩部分組成,對(duì)點(diǎn)陣設(shè)計(jì)及驅(qū)動(dòng)模塊的組成進(jìn)行了詳細(xì)的闡述并對(duì)軟件驅(qū)動(dòng)及防沖突設(shè)計(jì)進(jìn)行編程。通過(guò)該系統(tǒng)的開(kāi)發(fā)研究進(jìn)一步解決了中小學(xué)學(xué)生在校上課、放學(xué)和離校等信息的顯示,支持學(xué)生使用RFID卡刷卡進(jìn)行在校和離校狀態(tài)切換,通過(guò)按鍵進(jìn)行上課和放學(xué)狀態(tài)切換,確保家長(zhǎng)可以根據(jù)系統(tǒng)對(duì)應(yīng)的LED燈顯示顏色及時(shí)掌握孩子的相關(guān)狀況,極大地方便了家長(zhǎng)的日常接送,對(duì)于校園安全防控起到了一定積極的作用。
參考文獻(xiàn)
[1]陳大才. 射頻識(shí)別(RFID)技術(shù)[M]. 北京: 電子工業(yè)出版社, 2001.
[2]蔡錦達(dá), 吳偉鵬, 徐航暉. 非接觸式IC卡的內(nèi)部結(jié)構(gòu)與工作原理及其應(yīng)[J]. 企業(yè)技術(shù)開(kāi)發(fā), 2005(10): 3-5.
[3]Klaus Finkenzeller. 射頻識(shí)別(RFID)技術(shù)[M]. 北京: 電子工業(yè)出版社, 2001.
[4]鄧偉, 劉暾東, 鄭中杰. MFRC522射頻模塊在門(mén)禁系統(tǒng)中的應(yīng)用[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2012(12): 38-41.
[5]陳保平, 王月波, 馬伯元. 基于MFRC522的Mifare射頻卡讀寫(xiě)模塊開(kāi)發(fā)[J]. 微計(jì)算機(jī)信息, 2007(32): 230-231.
[6]馬曉穎. 射頻IC MFRC522在智能儀表中的應(yīng)用[J]. 國(guó)外電子元器件, 2008(5): 57-60.
[7]黃俊祥, 陶維青. 基于MFRC522的RFID讀卡器模塊設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用, 2010(22): 16-18.
[8]Philips Semiconductors. Data Sheet of Mifare Standard Card IC MF1 IC S50 Functional Specification[DB/OL]. http: //www. philips. com/semiconductors, 1998.
收稿日期:2021-03-14
作者簡(jiǎn)介:盧彬鋒(1983—),男,本科,研究方向:電子應(yīng)用智能制造、大數(shù)據(jù)分析。