一種基于CAN總線的高校食堂刷卡系統(tǒng)的設(shè)計(jì)方案
2.3串口通信接口電路設(shè)計(jì)
設(shè)計(jì)采用9芯的RS232C接口實(shí)現(xiàn)下位機(jī)與上位機(jī)之間的通信,AT89S52本身帶有一個(gè)全雙工UART串行通道,在硬件電路設(shè)計(jì)中,為了使AT89S52單片機(jī)的輸入輸出TTL電平與PC機(jī)配置的RS232C標(biāo)準(zhǔn)串行接口二者的電氣規(guī)范一致,本系統(tǒng)采用MAX232芯片實(shí)現(xiàn)AT89S52與PC機(jī)的RS232C標(biāo)準(zhǔn)接口電平之間的轉(zhuǎn)換。
2.4CAN總線接口電路設(shè)計(jì)
系統(tǒng)采用CAN通信控制器SJA1000和CAN收發(fā)器PCA82C250設(shè)計(jì)CAN總線節(jié)點(diǎn)接口電路。在硬件電路設(shè)計(jì)時(shí),總線末端的2個(gè)120Ω電阻,對于匹配總線阻抗起著非常重要的作用。如果忽略掉它們,會(huì)使數(shù)據(jù)通信的抗干擾能力及可靠性大大降低,甚至無法通信。
2.5鍵盤輸入電路設(shè)計(jì)
鍵盤電路用來接收用戶刷卡消費(fèi)輸入的金額,所以一個(gè)穩(wěn)定、占用系統(tǒng)資源少的人機(jī)對話通道非常重要。傳統(tǒng)的鍵盤電路設(shè)計(jì),不管是獨(dú)立式鍵盤還是矩陣式鍵盤,都非常浪費(fèi)微控制器的端口資源,而且還需要人為進(jìn)行去抖動(dòng)處理,且抗干擾能力差。為了克服上述弊端,本系統(tǒng)采用廣州周立功單片機(jī)發(fā)展有限公司自行設(shè)計(jì)的一款數(shù)碼管顯示驅(qū)動(dòng)及鍵盤掃描管理芯片ZLG7290來設(shè)計(jì)鍵盤電路。
2.6液晶顯示模塊電路設(shè)計(jì)
液晶顯示模塊電路用來提示用戶刷卡消費(fèi)的信息,為了使系統(tǒng)人機(jī)交互界面友好,液晶顯示模塊電路采用長沙太陽人公司生產(chǎn)的SMG12864G3-ZK型液晶來設(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ù)位、“看門狗”、定時(shí)輸出、電源電壓監(jiān)測、具有不同復(fù)位電壓等特點(diǎ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)軟件的開發(fā),針對各節(jié)點(diǎn)要完成的功能及要求,展開具體的分析、繪制程序流程圖、設(shè)計(jì)各功能模塊軟件程序。上位機(jī)監(jiān)控程序的開發(fā)是本系統(tǒng)的一個(gè)難點(diǎn)和重點(diǎn),主要實(shí)現(xiàn)上位機(jī)和下位機(jī)之間的通信、對發(fā)卡節(jié)點(diǎn)的命令操作、注冊用戶、消費(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)、讀錢包、扣款、過程液晶顯示、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ì)采用VisualC++6.0MFC編程技術(shù)來實(shí)現(xiàn),需要實(shí)現(xiàn)用戶信息的注冊或注銷、卡充值、卡扣款、用戶信息查詢和修改等功能,同時(shí)建立與數(shù)據(jù)庫的連接能將用戶消費(fèi)結(jié)算信息實(shí)時(shí)更新并儲(chǔ)存到數(shù)據(jù)庫中。系統(tǒng)上位機(jī)串口通信程序采用的是ActiveX控件MSComm進(jìn)行編程,數(shù)據(jù)庫編程采用ADO技術(shù),使用數(shù)據(jù)庫管理軟件SQLServer2000。根據(jù)系統(tǒng)的設(shè)計(jì)任務(wù)和要求,上位機(jī)軟件功能框圖如圖6所示。
4、結(jié)語
系統(tǒng)成功的實(shí)現(xiàn)了上位機(jī)與下位機(jī)之間的軟硬件調(diào)試,運(yùn)行穩(wěn)定,效果良好。系統(tǒng)操作能對用戶進(jìn)行注冊或注銷、用戶信息查詢以及卡充值、卡扣款,并能將用戶的消費(fèi)結(jié)算信息實(shí)時(shí)更新至數(shù)據(jù)庫中。本設(shè)計(jì)實(shí)現(xiàn)了安全、可靠、便捷的發(fā)卡和刷卡,達(dá)到了預(yù)期效果。
評(píng)論