基于CAN總線的高校食堂刷卡系統(tǒng)的設(shè)計(jì)與研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:高校食堂傳統(tǒng)的紙質(zhì)餐票、現(xiàn)金或基于接觸式IC卡技術(shù)的消費(fèi)支付方式存在服務(wù)效率不高、便捷性差、管理成本高、卡片易損壞等諸多弊端。為了克服這些弊端,研究將CAN總線技術(shù)和非接觸式智能卡技術(shù)結(jié)合起來(lái),提出一種基于CAN總線的高校食堂刷卡系統(tǒng)的設(shè)計(jì)方案,并完成下位機(jī)發(fā)卡節(jié)點(diǎn)和刷卡節(jié)點(diǎn)的軟硬件設(shè)計(jì),以及上位機(jī)管理軟件的開(kāi)發(fā),實(shí)現(xiàn)安全、可靠、便捷的發(fā)卡和刷卡以及用戶信息管理。
關(guān)鍵詞:刷卡系統(tǒng);CAN總線;非接觸式智能卡;用戶信息管理
0 引言
在如今的高校食堂,由于學(xué)生數(shù)量龐大,流動(dòng)性頻繁,傳統(tǒng)的紙質(zhì)餐票、現(xiàn)金或基于接觸式IC卡技術(shù)的消費(fèi)支付方式存在服務(wù)效率不高、便捷性差、管理成本高、卡片易損壞等諸多弊端。高校食堂消費(fèi)作為學(xué)校后勤服務(wù)的重要組成部分,如果仍沿用以前傳統(tǒng)的消費(fèi)方式,將動(dòng)用大量的人力物力,而且管理上會(huì)出現(xiàn)很多繁瑣的事務(wù),這樣不利于高校更好地為廣大師生服務(wù)以及學(xué)校的管理。為了解決這一問(wèn)題,如今,越來(lái)越多的高校采用智能卡技術(shù)和網(wǎng)絡(luò)技術(shù)相結(jié)合來(lái)構(gòu)建學(xué)校的食堂刷卡系統(tǒng)。
非接觸式智能卡技術(shù)和CAN總線技術(shù)都是當(dāng)今世界科技迅猛發(fā)展的產(chǎn)物。智能卡技術(shù)廣泛的應(yīng)用于各行業(yè),特別是公共交通、無(wú)線通信、身份識(shí)別、金融交易和安全防衛(wèi)等行業(yè);而CAN總線在可靠性、實(shí)時(shí)性和靈活性方面都有突出的優(yōu)點(diǎn)。如果將非接觸式IC卡技術(shù)和CAN總線技術(shù)2種熱點(diǎn)技術(shù)結(jié)合起來(lái),開(kāi)發(fā)一套基于CAN總線的高校食堂刷卡系統(tǒng),對(duì)優(yōu)化廣大師生的生活,提高高校食堂管理水平和服務(wù)質(zhì)量,將具有很好的促進(jìn)作用。
1 系統(tǒng)總體設(shè)計(jì)
1.1 系統(tǒng)設(shè)計(jì)原則
根據(jù)設(shè)計(jì)的背景以及系統(tǒng)的設(shè)計(jì)任務(wù)和要求,該系統(tǒng)在研究和設(shè)計(jì)過(guò)程中要遵循4個(gè)方面的原則:安全性、可靠性、易用性、易維護(hù)性。
1.2 系統(tǒng)主要技術(shù)方案選擇
本系統(tǒng)設(shè)計(jì)需要首先確定的主要技術(shù)方案有:通信總線的選擇、卡片的選擇、卡讀寫(xiě)操作技術(shù)方案的選擇。通過(guò)充分的比較論證,本系統(tǒng)采用CAN總線來(lái)構(gòu)建系統(tǒng)網(wǎng)絡(luò),選用Philips公司設(shè)計(jì)的Mifarel S50非接觸式IC卡作為高校食堂刷卡系統(tǒng)的信息載體,為了提高系統(tǒng)的可靠性、穩(wěn)定性和兼容性,本系統(tǒng)采用購(gòu)買(mǎi)北京易火眼公司的YHY502ATG射頻卡讀寫(xiě)模塊來(lái)對(duì)射頻卡進(jìn)行讀寫(xiě)操作。
1.3 系統(tǒng)設(shè)計(jì)主要器件選擇
根據(jù)市場(chǎng)情況、開(kāi)發(fā)工具和設(shè)計(jì)的實(shí)際需要,本系統(tǒng)的發(fā)卡節(jié)點(diǎn)和刷卡節(jié)點(diǎn)均選用單片機(jī)AT89S52作為主控芯片??紤]到SJA1000支持CAN2.0A/B協(xié)議,而PCA82C250可以支持110個(gè)CAN節(jié)點(diǎn),并且在國(guó)內(nèi)市場(chǎng)上Philips的產(chǎn)品型號(hào)比較多,購(gòu)買(mǎi)方便,所以選用Philips公司的SJA1000作為CAN控制器以及PCA82C250作為CAN總線收發(fā)器。
1.4 系統(tǒng)整體結(jié)構(gòu)
根據(jù)系統(tǒng)設(shè)計(jì)所確定的技術(shù)方案,系統(tǒng)整體結(jié)構(gòu)如圖1所示。
1.5 系統(tǒng)功能模塊劃分
根據(jù)系統(tǒng)設(shè)計(jì)的功能任務(wù)和要求,可把本系統(tǒng)劃分為3大功能模塊:發(fā)卡模塊、刷卡模塊和系統(tǒng)上位機(jī)模塊,如圖2所示。
2 系統(tǒng)硬件電路設(shè)計(jì)
2.1 硬件總體設(shè)計(jì)方案
高校食堂刷卡系統(tǒng)硬件部分分為發(fā)卡機(jī)和刷卡機(jī),根據(jù)系統(tǒng)功能模塊劃分,系統(tǒng)硬件電路具體由7部分構(gòu)成:AT89S52最小系統(tǒng)外圍電路、射頻卡讀寫(xiě)模塊YHY502ATG電路、串口通信電路、CAN總線通信電路、LCD12864顯示電路、鍵盤(pán)輸入電路和報(bào)警提示電路。系統(tǒng)硬件電路組成如圖3所示。
2.2 射頻卡讀/寫(xiě)模塊電路設(shè)計(jì)
YHY502ATG射頻卡讀/寫(xiě)模塊與微控制器之間的通信通過(guò)I2C總線實(shí)現(xiàn),可參考YHY502ATG的技術(shù)應(yīng)用手冊(cè)來(lái)設(shè)計(jì)應(yīng)用電路。YHY502ATG讀寫(xiě)模塊提供一組對(duì)卡操作的通信協(xié)議,不必考慮底層通信數(shù)據(jù)的處理,不過(guò)必須遵守這些通信協(xié)議,并根據(jù)設(shè)計(jì)需要在控制端修改相應(yīng)程序即可。
2.3 串口通信接口電路設(shè)計(jì)
設(shè)計(jì)采用9芯的RS 232C接口實(shí)現(xiàn)下位機(jī)與上位機(jī)之間的通信,AT89S52本身帶有一個(gè)全雙工UART串行通道,在硬件電路設(shè)計(jì)中,為了使AT89S52單片機(jī)的輸入輸出TTL電平與PC機(jī)配置的RS 232C標(biāo)準(zhǔn)串行接口二者的電氣規(guī)范一致,本系統(tǒng)采用MAX232芯片實(shí)現(xiàn)AT89S52與PC機(jī)的RS 232C標(biāo)準(zhǔn)接口電平之間的轉(zhuǎn)換。
2.4 CAN總線接口電路設(shè)計(jì)
系統(tǒng)采用CAN通信控制器SJA1000和CAN收發(fā)器PCA82C250設(shè)計(jì)CAN總線節(jié)點(diǎn)接口電路。在硬件電路設(shè)計(jì)時(shí),總線末端的2個(gè)120 Ω電阻,對(duì)于匹配總線阻抗起著非常重要的作用。如果忽略掉它們,會(huì)使數(shù)據(jù)通信的抗干擾能力及可靠性大大降低,甚至無(wú)法通信。
2.5 鍵盤(pán)輸入電路設(shè)計(jì)
鍵盤(pán)電路用來(lái)接收用戶刷卡消費(fèi)輸入的金額,所以一個(gè)穩(wěn)定、占用系統(tǒng)資源少的人機(jī)對(duì)話通道非常重要。傳統(tǒng)的鍵盤(pán)電路設(shè)計(jì),不管是獨(dú)立式鍵盤(pán)還是矩陣式鍵盤(pán),都非常浪費(fèi)微控制器的端口資源,而且還需要人為進(jìn)行去抖動(dòng)處理,且抗干擾能力差。為了克服上述弊端,本系統(tǒng)采用廣州周立功單片機(jī)發(fā)展有限公司自行設(shè)計(jì)的一款數(shù)碼管顯示驅(qū)動(dòng)及鍵盤(pán)掃描管理芯片ZLG7290來(lái)設(shè)計(jì)鍵盤(pán)電路。
2.6 液晶顯示模塊電路設(shè)計(jì)
液晶顯示模塊電路用來(lái)提示用戶刷卡消費(fèi)的信息,為了使系統(tǒng)人機(jī)交互界面友好,液晶顯示模塊電路采用長(zhǎng)沙太陽(yáng)人公司生產(chǎn)的SMG12 864G3-ZK型液晶來(lái)設(shè)計(jì)。為了節(jié)約單片機(jī)的I/O資源,液晶模塊采用串行接口方式。
2.7 系統(tǒng)復(fù)位電路設(shè)計(jì)
為了使單片機(jī)AT89S52和CAN控制器SJA1000同時(shí)復(fù)位,本系統(tǒng)采用IMP708復(fù)位芯片設(shè)計(jì)復(fù)位電路。IMP708為微處理監(jiān)控芯片,具有系統(tǒng)復(fù)位、掉電復(fù)位、手動(dòng)復(fù)位、“看門(mén)狗”、定時(shí)輸出、電源電壓監(jiān)測(cè)、具有不同復(fù)位電壓等特點(diǎn)。該芯片功耗低、使用簡(jiǎn)單、價(jià)格低廉、可靠性高,應(yīng)用十分廣泛。
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)分為上位機(jī)和下位機(jī)2部分。下位機(jī)軟件設(shè)計(jì)需要完成系統(tǒng)發(fā)卡節(jié)點(diǎn)和刷卡節(jié)點(diǎn)軟件的開(kāi)發(fā),針對(duì)各節(jié)點(diǎn)要完成的功能及要求,展開(kāi)具體的分析、繪制程序流程圖、設(shè)計(jì)各功能模塊軟件程序。上位機(jī)監(jiān)控程序的開(kāi)發(fā)是本系統(tǒng)的一個(gè)難點(diǎn)和重點(diǎn),主要實(shí)現(xiàn)上位機(jī)和下位機(jī)之間的通信、對(duì)發(fā)卡節(jié)點(diǎn)的命令操作、注冊(cè)用戶、消費(fèi)信息實(shí)時(shí)管理、用戶數(shù)據(jù)管理等功能。
3.1 發(fā)卡節(jié)點(diǎn)程序設(shè)計(jì)
發(fā)卡節(jié)點(diǎn)主要完成用戶的充值、串口通信等操作,結(jié)合硬件電路設(shè)計(jì),為了實(shí)現(xiàn)各模塊的功能,發(fā)卡節(jié)點(diǎn)的軟件總體設(shè)計(jì)流程如圖4所示。
3.2 刷卡節(jié)點(diǎn)程序設(shè)計(jì)
刷卡節(jié)點(diǎn)主要完成的功能有讀卡序列號(hào)、讀錢(qián)包、扣款、過(guò)程液晶顯示、CAN總線發(fā)送消費(fèi)結(jié)算信息給上位機(jī)。根據(jù)節(jié)點(diǎn)的硬件電路和設(shè)計(jì)的功能要求,刷卡節(jié)點(diǎn)程序總體設(shè)計(jì)的流程如圖5所示。
3.3 上位機(jī)程序設(shè)計(jì)
上位機(jī)程序的設(shè)計(jì)采用Visual C++6.0 MFC編程技術(shù)來(lái)實(shí)現(xiàn),需要實(shí)現(xiàn)用戶信息的注冊(cè)或注銷(xiāo)、卡充值、卡扣款、用戶信息查詢和修改等功能,同時(shí)建立與數(shù)據(jù)庫(kù)的連接能將用戶消費(fèi)結(jié)算信息實(shí)時(shí)更新并儲(chǔ)存到數(shù)據(jù)庫(kù)中。系統(tǒng)上位機(jī)串口通信程序采用的是ActiveX控件MSComm進(jìn)行編程,數(shù)據(jù)庫(kù)編程采用ADO技術(shù),使用數(shù)據(jù)庫(kù)管理軟件SQL Server 2000。根據(jù)系統(tǒng)的設(shè)計(jì)任務(wù)和要求,上位機(jī)軟件功能框圖如圖6所示。
4 結(jié)語(yǔ)
系統(tǒng)成功的實(shí)現(xiàn)了上位機(jī)與下位機(jī)之間的軟硬件調(diào)試,運(yùn)行穩(wěn)定,效果良好。系統(tǒng)操作能對(duì)用戶進(jìn)行注冊(cè)或注銷(xiāo)、用戶信息查詢以及卡充值、卡扣款,并能將用戶的消費(fèi)結(jié)算信息實(shí)時(shí)更新至數(shù)據(jù)庫(kù)中。本設(shè)計(jì)實(shí)現(xiàn)了安全、可靠、便捷的發(fā)卡和刷卡,達(dá)到了預(yù)期效果。