什么是單片機(jī)應(yīng)用系統(tǒng)的開發(fā)過程
掃描二維碼
隨時(shí)隨地手機(jī)看文章
單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)與開發(fā)主要包括五部分內(nèi)容:方案論證,硬件系統(tǒng)的設(shè)計(jì),系統(tǒng)軟件的設(shè)計(jì),系統(tǒng)仿真調(diào)試和脫機(jī)運(yùn)行。各部分詳細(xì)內(nèi)容如圖 1 所示。
一、方案論證
確定開發(fā)題目后,首先要進(jìn)行方案調(diào)研,這個(gè)過程至關(guān)重要,制定出一個(gè)好的方案,會(huì)使后面的開發(fā)工作較為順利。調(diào)研工作主要解決以下幾個(gè)問題:
(1) 了解用戶的需求,確定設(shè)計(jì)規(guī)模和總體框架。
(2) 摸清軟硬件技術(shù)難度,明確技術(shù)主攻問題。
(3) 針對(duì)主攻問題開展調(diào)研工作,查找中外有關(guān)資料,確定初步方案。
(4) 單片機(jī)應(yīng)用開發(fā)技術(shù)是軟硬件結(jié)合的技術(shù),方案設(shè)計(jì)要權(quán)衡任務(wù)的軟硬件分工。有時(shí)硬件設(shè)計(jì)會(huì)影響到軟件程序結(jié)構(gòu)。如果系統(tǒng)中增加某個(gè)硬件接口芯片,而給系統(tǒng)程序的模塊化帶來了可能和方便,那么這個(gè)硬件開銷是值得的。在無礙大局的情況下,以軟件代替硬件正是計(jì)算機(jī)技術(shù)的長(zhǎng)處。
(5) 盡量采納可借鑒的成熟技術(shù),減少重復(fù)性勞動(dòng)。
二、硬件系統(tǒng)的設(shè)計(jì)
單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)可劃分為兩部分:一部分是與單片機(jī)直接接口的數(shù)字電路范圍的電路芯片的設(shè)計(jì)。如存儲(chǔ)器和并行接口的擴(kuò)展,定時(shí)系統(tǒng)、中斷系統(tǒng)擴(kuò)展,一般的外部設(shè)備的接口,甚至于A/D、D/A 芯片的接口。另一部分是與模擬電路相關(guān)的電路設(shè)計(jì),包括信號(hào)整形、變換 、隔離和選用傳感器;輸出通道中的隔離和驅(qū)動(dòng)以及執(zhí)行元件的選用。應(yīng)用系統(tǒng)的設(shè)計(jì)應(yīng)注意以下幾個(gè)方面:
(1) 從應(yīng)用系統(tǒng)的總線觀念出發(fā),各局部系統(tǒng)和通道接口設(shè)計(jì)與單片機(jī)要做到全局一盤棋。例如,芯片間的時(shí)間是否匹配,電平是否兼容,能否實(shí)現(xiàn)總線隔離緩沖等,避免“拼 盤”戰(zhàn)術(shù)。
(2) 盡可能選用符合單片機(jī)用法的典型電路。
圖 1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)設(shè)計(jì)流程圖
(3) 盡可能采用新技術(shù),選用新的元件及芯片。選用集成度高的芯片,以減少芯片數(shù)量,縮小印制板面積。例如,選用含有 51 內(nèi)核的擴(kuò)展多功能接口的單片機(jī)新機(jī)種 ,取代 8031 向外的一大片電路。選用無粘合接口,如數(shù)據(jù)采集系統(tǒng)等集成度高、功能強(qiáng)的數(shù)字或模擬電路芯片,取代許多小規(guī)模集成電路芯片的集合。選用 PLD 可編程邏輯器件,取代部分電路設(shè)計(jì)。
(4) 抗干擾設(shè)計(jì)是硬件設(shè)計(jì)的重要內(nèi)容,如看門狗電路、去耦濾波、通道隔離、合理的印制板布線等。
(5) 當(dāng)系統(tǒng)擴(kuò)展的各類接口芯片較多時(shí),要充分考慮到總線驅(qū)動(dòng)能力。當(dāng)負(fù)載超過允許范圍時(shí),為了保證系統(tǒng)可靠工作,必須加總線驅(qū)動(dòng)器。
(6) 可用印制板輔助設(shè)計(jì)軟件,如 PROTEL 進(jìn)行印制板的設(shè)計(jì)。
三、應(yīng)用軟件設(shè)計(jì)
應(yīng)用系統(tǒng)中測(cè)控任務(wù)的實(shí)現(xiàn)最終是靠程序的執(zhí)行來完成的。應(yīng)用軟件設(shè)計(jì)的如何,將決定系統(tǒng)的效率和它的優(yōu)劣。軟件設(shè)計(jì)需注意以下幾個(gè)方面:
(1) 采用模塊程序設(shè)計(jì)。模塊程序是把一個(gè)較長(zhǎng)的完整的程序,如監(jiān)控程序,分成若干個(gè)小的功能程序模塊,在分別進(jìn)行獨(dú)立設(shè)計(jì)、編程、調(diào)試之后,最終裝配在一起,鏈接成一個(gè)完整的程序。模塊化程序設(shè)計(jì)便于程序移植和修改。
(2) 采用自頂向下的程序設(shè)計(jì)。程序設(shè)計(jì)時(shí),先從系統(tǒng)主程序開始設(shè)計(jì),從屬的程序或子程序用程序標(biāo)志代替。當(dāng)主程序編好后,再將標(biāo)志擴(kuò)展為從屬程序或子程序。
(3) 外部設(shè)備和外部事件盡量采用中斷方式與 CPU 聯(lián)絡(luò),這樣 ,既便于系統(tǒng)模塊化,也可提高程序效率。
(4) 近幾年推出的單片機(jī)開發(fā)系統(tǒng),有些是支持高級(jí)語(yǔ)言的,如 C51 與 PL/M96 的編程和在線跟蹤調(diào)試。與匯編語(yǔ)言編程相比,使用高級(jí)語(yǔ)言編程,可大大提高開發(fā)和調(diào)試效率,而得到的目標(biāo)代碼質(zhì)量可與匯編語(yǔ)言相媲美。
(5) 目前已有一些實(shí)用子程序發(fā)表,程序設(shè)計(jì)時(shí)可適當(dāng)使用,其中包括運(yùn)行子程序和控制算法程序等。
(6) 系統(tǒng)的軟件設(shè)計(jì)應(yīng)充分考慮到軟件抗干擾措施。如數(shù)字濾波,程序跑飛的軟件陷阱,軟件 WATCHDOG,軟件的容錯(cuò)設(shè)計(jì)等。
四、軟硬件調(diào)試
一個(gè)單片機(jī)應(yīng)用系統(tǒng),經(jīng)過方案論證,硬件設(shè)計(jì),印制板設(shè)計(jì)加工和焊接,軟件的編寫,還要進(jìn)行軟硬件的調(diào)試,驗(yàn)證理論設(shè)計(jì)的正確性。由于單片機(jī)沒有自開發(fā)能力,其應(yīng)用系統(tǒng)調(diào)試需借助于單片機(jī)開發(fā)系統(tǒng)。
單片機(jī)系統(tǒng)主要的功能是:
(1) 程序的錄入、編輯和交叉匯編功能。
(2) 提供仿真 RAM 、仿真單片機(jī)。
(3) 支持用戶匯編語(yǔ)言(有的同時(shí)支持高級(jí)語(yǔ)言) 源文件跟蹤調(diào)試。
(4) 目前一般的開發(fā)裝置都有與通用微機(jī)的聯(lián)機(jī)接口,可以利用微機(jī)環(huán)境進(jìn)行調(diào)試。
(5) EPROM 的寫入功能。
在利用開發(fā)裝置進(jìn)行調(diào)試時(shí),應(yīng)先把硬件電路調(diào)通。硬件調(diào)試可采用分塊調(diào)試的方法,先易后難,先局部調(diào)試,都通過后再總調(diào)。對(duì)硬件 的分塊調(diào)試可編制相應(yīng)模塊的測(cè)試程序,有的測(cè)試程序稍加改動(dòng)就可成為功能模塊程序。
在硬件基本調(diào)通,驗(yàn)證存儲(chǔ)空間分配可行時(shí),進(jìn)行自頂向下的主程序的設(shè)計(jì)調(diào)試。程序的調(diào)試需在 DEBUG 環(huán)境下進(jìn)行,用斷點(diǎn)調(diào)試或連續(xù)調(diào)試 的方法,通過程序執(zhí)行過程中內(nèi)存或有關(guān)寄存器的狀態(tài)變化找出故障點(diǎn),也可借助于儀器儀表測(cè)試電路的狀態(tài)和波形來驗(yàn)證軟硬件的正確性。
五、EPROM 固化
所有開發(fā)裝置調(diào)試通過的程序,最終要脫機(jī)運(yùn)行,即將仿真 ROM 中運(yùn)行的程序固化到 EPROM 脫機(jī)運(yùn)行。但在開發(fā)裝置上運(yùn)行正常的程序,固化后脫機(jī)運(yùn)行并不一定同樣正常。若脫機(jī)運(yùn)行有問題,需分析原因,如是否總線驅(qū)動(dòng)功能不夠,或是對(duì)接口芯片操作的時(shí)間不匹配等。經(jīng)修改的程序需再次寫入。