基于Memory-link的人機(jī)交互系統(tǒng)可靠性設(shè)計(jì)
在人機(jī)交互的工業(yè)控制系統(tǒng)中,通信是必不可少的部分,而穩(wěn)定可靠性是通信的基本指標(biāo)。這就要求系統(tǒng)在硬件上具有較強(qiáng)的抗干擾能力,在軟件運(yùn)行上能夠有效的避免出現(xiàn)死機(jī)等現(xiàn)象。在傳統(tǒng)工控系統(tǒng)中,一般是采用PLC作為控制器,其應(yīng)用廣泛、技術(shù)成熟,具有很高的可靠性和抗干擾能力。但是PLC相對(duì)于普通微控制器來(lái)說(shuō)存在成本高、體積大、實(shí)現(xiàn)功能單一等問(wèn)題。為此,很多設(shè)計(jì)者采用微型控制器進(jìn)行自主開(kāi)發(fā)工控系統(tǒng),但是其在惡劣環(huán)境中的可靠性和抗干擾方面相對(duì)要弱,致使其工控系統(tǒng)總體性能較差。
為此,文中采用S3C44BOX作為控制芯片,結(jié)合硬件和軟件兩方面綜合考慮,介紹一種可靠的人機(jī)交互工控系統(tǒng)的設(shè)計(jì)方案。
1 系統(tǒng)總體設(shè)計(jì)
人機(jī)交互系統(tǒng)主要是觸摸屏和主控芯片的通信,觸摸屏能夠正確發(fā)送和接收顯示數(shù)據(jù)是系統(tǒng)的基本功能。該系統(tǒng)采用日本的proface30 00系列的觸摸屏作為人機(jī)界面,通過(guò)S3C44BOX芯片進(jìn)行數(shù)據(jù)轉(zhuǎn)換和功能控制。圖1為系統(tǒng)結(jié)構(gòu)框圖。
2 硬件設(shè)計(jì)
在硬件方面,影響系統(tǒng)可靠安全運(yùn)行的因素有3個(gè)方面:1)干擾源,能夠產(chǎn)生干擾信號(hào)的元件、設(shè)備或信號(hào),比如雷電、電機(jī)等;2)傳播路徑,從干擾源傳播到敏感器件的通路或媒介,典型的干擾傳播路徑是導(dǎo)線的傳導(dǎo)和空間的輻射;3)敏感器件,容易被干擾的對(duì)象,比如A/D、D/A變換器,通信線路,弱信號(hào)放大器等。
因此,要增強(qiáng)系統(tǒng)的抗干擾能力,就必須從抑制干擾源、切斷干擾信號(hào)傳播路徑、提高敏感器件的抗干擾性能這3個(gè)方面考慮。以下為該系統(tǒng)的硬件可靠性設(shè)計(jì)方法。
2.1 抑制干擾源
為了給系統(tǒng)提供穩(wěn)定干凈的電源,電源模塊采用安規(guī)電容抑制差/共模干擾,并加入磁環(huán)抑制高頻干擾信號(hào),提高電源的穩(wěn)定性。
2.2 切斷傳播路徑
1)電源模塊隔離。各個(gè)功能模塊的電源相對(duì)獨(dú)立,也就阻斷了一個(gè)受干擾的模塊會(huì)通過(guò)電源去影響另一個(gè)模塊正常工作的傳播路徑。由系統(tǒng)框圖可知,該系統(tǒng)的內(nèi)部電源模塊和觸摸屏通信電源模塊分開(kāi)獨(dú)立供電,減少各個(gè)模塊之間的干擾。
2)光耦隔離。為減少外部干擾信號(hào)對(duì)控制器的影響,利用光耦對(duì)外部信號(hào)進(jìn)行隔離.并采用SN74HC245DW驅(qū)動(dòng)/緩沖器芯片在光耦的兩端,以增強(qiáng)其驅(qū)動(dòng)能力。由于其較強(qiáng)的驅(qū)動(dòng)能力也降低了光耦對(duì)其外界干擾信號(hào)的敏感性,提高了抗干擾能力。圖2為光耦隔離電路。
3)在該系統(tǒng)中,通信線使用帶屏蔽層的雙絞線,并將其屏蔽層可靠接地。這樣可以有效的阻斷其外部電磁干擾信號(hào)通過(guò)通訊線干擾系統(tǒng)正常的傳播路徑。
2.3 提高線路的抗干擾性能
由于RS-422采用了差模傳輸方式,傳輸速率高達(dá)10Mb/s,傳輸距離長(zhǎng)2 000 m,綜合抗干擾能力比RS-232優(yōu)越,已廣泛應(yīng)用于工業(yè)控制、儀器、儀表、多媒體網(wǎng)絡(luò)、機(jī)電一體化產(chǎn)品等諸多領(lǐng)域。因此,該系統(tǒng)采用MAX488CSA芯片將RS-232通信電平轉(zhuǎn)換成RS-422通信電平后再進(jìn)行傳輸。圖3為RS-422電路。
3 軟件設(shè)計(jì)
為提高系統(tǒng)軟件性能,很多軟件開(kāi)發(fā)人員采用一些軟件來(lái)增強(qiáng)系統(tǒng)正常運(yùn)行的可靠性,比如使用看門(mén)狗、設(shè)置軟件陷阱等,這些措施的采用都具有普適性。針對(duì)于人機(jī)交互系統(tǒng)來(lái)說(shuō),頻繁的點(diǎn)擊觸摸屏,短時(shí)間內(nèi)產(chǎn)生多次串行通信中斷,而響應(yīng)中斷程序執(zhí)行代碼較長(zhǎng),如果超出中斷嵌套次數(shù),則系統(tǒng)會(huì)面臨崩潰的危險(xiǎn)。為解決此問(wèn)題,該系統(tǒng)專門(mén)設(shè)計(jì)中斷響應(yīng)函數(shù),提供支持多次產(chǎn)生的串行中斷。
3.1 Memory-link協(xié)議
系統(tǒng)通信采用Proface內(nèi)部集成的Memory-link通信協(xié)議,該協(xié)議支持兩種工作方式:ASCII碼兼容方式和擴(kuò)展方式。在兼容方式下,只有寫(xiě)到數(shù)據(jù)區(qū)和讀數(shù)據(jù)區(qū)兩種命令;而在擴(kuò)展方式下,除此之外,還可以執(zhí)行繪圖命令。
該系統(tǒng)采用的是ASCII碼兼容、主從訪問(wèn)方式。其所用通訊命令有以下4條。
1)主機(jī)(單片機(jī))讀命令,如表1所示。
注:讀的數(shù)據(jù)地址占4字節(jié),例如讀取地址50,其HEX格式為0x0032;
讀的數(shù)據(jù)長(zhǎng)度也占4字節(jié),數(shù)據(jù)長(zhǎng)度是以字為單位的。
2)GP應(yīng)答命令,如表2所示。
注:每個(gè)地址的(WORD)數(shù)據(jù),占4字節(jié)傳送
3)主機(jī)(單片機(jī))寫(xiě)命令,如表3所示。
注:每個(gè)地址的(WORD)數(shù)據(jù),占4字節(jié)傳送
4)GP中斷輸出命令:GP主動(dòng)發(fā)送一個(gè)字節(jié)數(shù)據(jù)到主機(jī)。
3.2 中斷響應(yīng)和驅(qū)動(dòng)結(jié)構(gòu)
在人機(jī)交互系統(tǒng)的應(yīng)用中,觸摸屏主要有兩大功能:數(shù)據(jù)顯示和數(shù)據(jù)輸入。數(shù)據(jù)顯示功能只需要單片機(jī)利用Memory-link協(xié)議通過(guò)RS4-22將數(shù)據(jù)寫(xiě)到觸摸屏的邏輯寄存器,觸摸屏就會(huì)立刻顯示;數(shù)據(jù)輸入過(guò)程比較繁瑣,首先觸摸屏接收數(shù)據(jù)輸入,然后給單片機(jī)發(fā)送中斷,單片機(jī)識(shí)別發(fā)送的中斷號(hào)后執(zhí)行響應(yīng)的驅(qū)動(dòng)程序,將觸摸屏發(fā)送的數(shù)據(jù)進(jìn)行讀取并保存起來(lái)。
為解決短時(shí)間內(nèi),觸摸屏多次發(fā)送輸入中斷產(chǎn)生的隱患,必須使單片機(jī)進(jìn)入中斷后執(zhí)行的時(shí)間足夠短(小于等于人的反應(yīng)與觸摸屏中斷發(fā)送時(shí)間之和)。為此,文中介紹一種中斷程序執(zhí)行足夠小的代碼執(zhí)行結(jié)構(gòu)。圖4為程序流程圖。
觸摸屏每次發(fā)送串行中斷之后,單片機(jī)進(jìn)入串行中斷,根據(jù)觸摸屏發(fā)送來(lái)的中斷號(hào),設(shè)定自定義中斷標(biāo)志位并退出中斷等待接收下一次中斷,在無(wú)中斷時(shí)候,程序執(zhí)行相應(yīng)自定中斷標(biāo)志位有效的中斷函數(shù)。
1)中斷函數(shù)部分程序
上述的代碼可見(jiàn),單片機(jī)進(jìn)入中斷后執(zhí)行的最長(zhǎng)有效的指令超過(guò)10條,單片機(jī)如果用10 M的晶振3倍頻后時(shí)鐘周期為30 M,在根據(jù)ARM最大指令周期估算,整個(gè)中斷執(zhí)行時(shí)間不超過(guò)10μs。遠(yuǎn)遠(yuǎn)小于人的正常反應(yīng)時(shí)間0.1 s,保證了單片機(jī)能執(zhí)行在觸摸屏中人的觸摸發(fā)來(lái)的任意多個(gè)連續(xù)的中斷。
2)主函數(shù)部分程序
在主函數(shù)中。通過(guò)查詢?nèi)肿兞?,進(jìn)入相應(yīng)中斷程序。不把中斷程序放在中斷里,減弱了實(shí)時(shí)性,但是極大的增強(qiáng)了可靠性。
4 結(jié)束語(yǔ)
由上述的理論分析和詳細(xì)的軟硬件設(shè)計(jì)可以看出?;赟3C44BOX與Proface通信系統(tǒng)硬件將結(jié)構(gòu)具有普適性,軟件結(jié)構(gòu)清晰簡(jiǎn)單。硬件采用隔離、差分傳輸、增強(qiáng)驅(qū)動(dòng)的方式來(lái)阻斷傳播途徑、減弱敏感元件的敏感性的方式來(lái)提高硬件的抗干擾能力;軟件則采用在中斷置標(biāo)志位的辦法實(shí)現(xiàn)中斷的快速反應(yīng)能力和在主函數(shù)或任務(wù)中通過(guò)判斷標(biāo)志位的方法來(lái)運(yùn)行中斷程序保證了其不會(huì)受到多重中斷的干擾而不能被正常執(zhí)行。實(shí)踐證明,在弧焊機(jī)等強(qiáng)干擾源的干擾下,系統(tǒng)沒(méi)有出現(xiàn)數(shù)據(jù)傳輸錯(cuò)誤或死機(jī)等現(xiàn)象。
評(píng)論