日本少妇被爽到高潮动态图,国产jjzzjjzz视频全部免费,亚洲精品国产精品制服丝袜,精品免费一区二区三区在

? ? ? ?

咨詢電話

ENGLISH0755-88840386
新聞中心

咨詢電話

0755-88840386
您的位置:首頁 > 學習專題 > 專業(yè)技術專題 > 工業(yè)自動化稱重儀表>詳情頁

基于構件重用技術的嵌入式稱重物聯(lián)網(wǎng)的開發(fā)

發(fā)布時間:2021-07-06 14:52:41 |來源:網(wǎng)絡轉載

嵌入式稱重物聯(lián)網(wǎng)的開發(fā),包括硬件設計和軟件設計兩個過程。近年來,隨著微控制器MCU)內(nèi)部Flash存儲器可靠性的提高以及擦除/寫入方法的變化,內(nèi)部RAM及Flash存儲器容量的增大,以及外部模塊內(nèi)置化程度的提高,設計復雜性、設計規(guī)模及開發(fā)手段已經(jīng)發(fā)生了根本變期化,使得硬件設計變得越來越復雜,軟件的份量也急劇增加。但是,我們的開發(fā)方法卻顯得比較落后。如在硬件設計時,開發(fā)人員缺乏統(tǒng)一的設計規(guī)范,往往是憑個人工作經(jīng)驗和習慣的積累進行設計,當開發(fā)完一個嵌入式應用系統(tǒng)再進行下一個應用系統(tǒng)開發(fā)時,硬件電路原理圖往往需要從零開始,重新繪制,造成時間和精力的浪費,而且還容易出錯;在軟件開發(fā)時,開發(fā)人員缺乏軟件工程的思想支撐,缺少標準化、文檔化的管理,軟件的通用性、可移植性和可復用性較差,給開發(fā)人員之間的交流及日后系統(tǒng)的維護帶來很大的困難。以上問題導致的結果是系統(tǒng)開發(fā)周期長,效率低?;跇嫾赜眉夹g的開發(fā)思想,在一定程度上能解決這些問題。
一、構件重用技術
(一)構件與構件模型
構件是系統(tǒng)中實際存在的可更換部分,它實現(xiàn)特定的功能,符合一套接口標準并實現(xiàn)一組接口。構件代表系統(tǒng)中的一部分物理實施,包括軟件代碼(源代碼、二進制代碼或可執(zhí)行代碼)或其等價物(如腳本或命令文件)。
構件模型(model)是對構件本質特征的抽象描述。目前,國際上已經(jīng)形成了許多構件模型,這些模型的目標和用途各不相同。國內(nèi)許多學者在構件模型的研究方面做了不少工作,取得了一定成績,其中較為突出的是北京大學楊芙清院士等人提出的“青鳥構件模型”,如圖1所示,該模型充分吸收了國內(nèi)外構件模型的優(yōu)點,并與它們相容,它由外部接口(interface)與內(nèi)部結構兩部分組成。

稱重青鳥構建模型圖

(二)構件的獲取
可重用信息具有領域特性,領域具有內(nèi)聚性
(cohesion)和穩(wěn)定性(stability)。領域是一組具有相似或相近軟件需求的應用系統(tǒng)所覆蓋的功能區(qū)域,領域工程(domainengineering)是一組相似或相近系統(tǒng)的應用工程(applicationengineering)建立基本能力和必備基礎的過程。領域工程過程可劃分為領域分析、領域設計和領域實現(xiàn)等多個活動,其中的活動與結果,如圖2所示。

稱重領域工程中的活動與結果

在建立基于構件的軟件開發(fā)(CBSD,Compo-nent-BasedSoftwareDevelopmen)t中,構件獲取可以有多種不同形式,如:
(1)從現(xiàn)有構件中獲得符合要求的構件;
(2)通過遺留工程(Legacyengineering),將具有潛在重用價值的構件提取出來,得到可重用的構件;
(3)從市場上購買現(xiàn)成的構件;
(4)開發(fā)新的符合要求的構件。
(三)構件庫
在構件重用過程中,建立構件庫以進行可重用構件的推廣和使用,為后繼嵌入式產(chǎn)品的開發(fā)提供良好的可重用基礎。構件庫的組織應方便構件的存儲和檢索??芍赜眉夹g對構件庫組織方法的要求是:
(1)支持構件庫的各種維護動作,如增加、刪除以及修改構件,盡量不要影響構件庫的結構;
(2)不僅要支持精確匹配,還要支持相似構件的查找;
(3)不僅能進行簡單的語法匹配,而且能夠查找在功能或行為方面等價或相似的構件;
(4)對應用領域具有較強的描述能力和較好的描述精度;
(5)庫管理員和用戶容易使用。
目前,已有的構件分類方法可以歸納為三類,分別是關鍵字分類法、刻面分類法和超文本分類法。構件庫的關鍵字分類結構示例,如圖3所示,它支持圖形用戶界面設計。

稱重關鍵字分類結構示例圖

(四)構件的體系結構
在軟件設計時采用層次式軟件體系結構,將產(chǎn)品的系統(tǒng)結構模型定義為四個層次,如圖4所示。

稱重層次式體系結構圖

通過系統(tǒng)構件的分層,將頻繁變動的業(yè)務邏輯層分離出來,實現(xiàn)通用類構件的完全重用,并且在各個模塊之間設計統(tǒng)一的接口,當某一模塊業(yè)務邏輯改變時,使系統(tǒng)之間的影響最小。系統(tǒng)實現(xiàn)即插即用(plugandplay),容易升級。
二、嵌入式稱重物聯(lián)網(wǎng)的構件化設計
嵌入式稱重物聯(lián)網(wǎng)是軟件與硬件的綜合體,硬件設計和軟件設計相輔相成。嵌入式系統(tǒng)中的驅動程序是直接工作在各種硬件上的軟件,是硬件和高層軟件之間的橋梁。正是通過驅動程序,各種硬件設備才能正常運行,達到既定的工作效果。
(一)嵌入式稱重物聯(lián)網(wǎng)組成結構
嵌入式稱重物聯(lián)網(wǎng)主要由秤臺、數(shù)字稱重傳感器、網(wǎng)絡型稱重顯示控制儀、PC機、大屏幕顯示器和打印機等硬件組成,其組成結構示意圖,如圖5所示。

嵌入式稱重物聯(lián)網(wǎng)組成結構示意圖

(1)數(shù)字式稱重傳感器(簡稱“數(shù)字傳感器”),是嵌入式稱重物聯(lián)網(wǎng)的關鍵部件,它的作用是將被稱物體的重量轉換成數(shù)字信號傳給網(wǎng)絡型稱重顯示儀表,本系統(tǒng)采用最新型的數(shù)字傳感器,它具有稱量精度高、抗干擾、防雷擊、防作弊能力強、可在各種惡劣環(huán)境下工作等優(yōu)點。
網(wǎng)絡型稱重顯示儀具有界面圖形化、接口網(wǎng)絡化、存儲海量化、格式多樣化、維護簡單化等特點,采用了不同于傳統(tǒng)儀表的設計方法,在設計中間采用了一些最新的技術,如智能與診斷、網(wǎng)絡通訊識別等,使整個系統(tǒng)能達到最高的精度及超低的故障率。它的核心部件采用高端32位MCU,具有4GB的地址空間,能在單片內(nèi)提供以太網(wǎng)控制器及以太網(wǎng)物理層和閃存,它在遠程數(shù)據(jù)采集、以太網(wǎng)供電等嵌入式物聯(lián)網(wǎng)中得到了廣泛的應用。
(3)網(wǎng)絡接口構件是指實現(xiàn)異步串行通信的模塊,又稱為串行通信接口(SerialCommunicationInterface,SC)I,它可以將終端或個人計算機連接到MCU,也可以將幾個分散的MCU連接成通信網(wǎng)絡。在臺式計算機上帶的兩個串口,COM1口和COM2口,部分筆記本上也帶有串口COM。網(wǎng)絡接口構件,如圖6所示。

嵌入式網(wǎng)絡接口構件圖

(二)嵌入式硬件構件和軟件構件的層次模型嵌入式軟件構件(EmbeddedSoftwareCompo-nent,ESC)是實現(xiàn)一定嵌入式功能的一組封裝的、規(guī)范的、可重用的、具有嵌入特性的軟件單元,是組織嵌入式系統(tǒng)的功能單位。
嵌入式軟件結構分為高層軟件結構和底層軟件結構(以下簡稱為高層構件和底層構件)。高層構件與硬件無關,而底層構件與硬件密不可分,是硬件驅動程序的封裝。
在硬件構件中,核心構件為MCU的最小系統(tǒng)。通常,MCU內(nèi)部包含GPIO(即通用I/O)口和一些內(nèi)置功能模塊,我們將通用I/O口的驅動程序封裝為GPIO構件,各內(nèi)置功能模塊的驅動程序封裝為功能構件,相對于核心構件而言,中間構件和終端構件是核心構件的“外設”,由這些“外設”的驅動程序封裝而成的軟件構件稱為底層外設構件。注意,并不是所有的中間構件和終端構件都可以作為編程對象。例如鍵盤、LED、LCD等硬件構件與編程有關,而電平轉換硬件構件就與編程無關,因而不存在相應的底層驅動程序,當然也就沒有相應的軟件構件。嵌入式硬件構件與軟件構件的層次模型,如圖7所示。

嵌入式硬件與軟件結構層次模型

底層外設構件可以調(diào)用底層內(nèi)部控件,如LCD構件可以調(diào)用GPIO構件,PCF8563構件(時鐘構件)可以調(diào)用IZC構件等。高層構件可以調(diào)用底層外設構件和底層內(nèi)部構件中的功能構件,而不能直接調(diào)用GPIO構件。另外,考慮到幾乎所有的底層內(nèi)部構件都涉及到MCU各種寄存器的使用,因此將MCU的所有寄存器定義組織在一起,形成MCU頭文件,以便其它構件頭文件中包含該頭文件。
(三)底層構件的實現(xiàn)方法與編程思想
(1)底層構件的組成
底層構件是與硬件直接打交道的軟件,由頭文件和源程序兩部分組成。
頭文件中的主要內(nèi)容有:包含下層頭文件的#include語句、用以描述構件屬性的宏定義語句以及對外接口函數(shù)原型說明。在頭文件中使用函數(shù)原型,對于建立代碼模塊和外部接口的規(guī)范,便于他人使用,都是很有幫助的。使用這些函數(shù)的用戶,不需要查找源代碼去了解參數(shù)的具體類型,直接查看函數(shù)原型即可。
源程序文件中存放構件的內(nèi)部函數(shù)和外部函數(shù)的定義,即函數(shù)的實現(xiàn)代碼,以完成函數(shù)所要實現(xiàn)的功能。
在對底層構件進行設計時,最關鍵的工作是要對構件的共性和個性進行分析,抽取出構件的屬性和對外接口函數(shù)。盡可能做到:當一個底層構件應用到不同系統(tǒng)中時,僅需修改構件頭文件,對于構件的源程序文件則不必修改或改動很小。
(2)編寫構件時注意事項
1)構件的頭文件和源程序文件的主文件名一致,且為構件名;
2)屬性和操作的命名統(tǒng)一以構件名開頭。這樣的好處是:當使用底層構件組裝軟件系統(tǒng)時,避免構件之間出現(xiàn)同名現(xiàn)象。同時,名稱要使人有“顧名思義”的效果;
3)對MCU內(nèi)的模塊寄存器名和端口名進行重定義,在其他的代碼里都將使用宏名對模塊寄存器端口進行操作。這樣,當?shù)讓域寗映绦蛞浦驳狡渌鸐CU時,只要修改重定義語句即可;
4)內(nèi)部函數(shù)與外部函數(shù)要設計合理,函數(shù)參數(shù)個數(shù)及類型要考慮全面。內(nèi)部函數(shù)僅提供給同一構件中的其他內(nèi)部函數(shù)或外部函數(shù)調(diào)用,作用域僅限于定義該函數(shù)的文件。外部函數(shù)是對外接口函數(shù),供上層應用程序調(diào)用。在定義外部函數(shù)時,應該對函數(shù)名、函數(shù)功能、入口參數(shù)、函數(shù)回值、使用說明、函數(shù)適用范圍等進行詳細描以增強程序的可讀性。上層應用程序不能直接對構件的屬性進行讀取或設置,必須借助于該構件提供的接口操作函數(shù)來實現(xiàn);
5)應用程序在使用底層構件時,嚴格禁止通過全局變量來傳遞參數(shù),所有的數(shù)據(jù)傳遞都要通過函數(shù)的形式參數(shù)來接收。這樣做不但使得接口簡捷,更加避免了全局變量可能引發(fā)的安全隱患。
(四)軟件構件設計
軟件構件設計包括低端軟件設計和高端軟件設計兩部分。
(1)底層構件設計
底層構件是硬件的驅動程序,是構建低端軟件的基石。在進行低端軟件設計時,首先要結合軟件所要實現(xiàn)的功能,按照構件化思想設計并規(guī)劃底層構件。本系統(tǒng)涉及到的底層構件有:
1)通用I/O構件:初始化端口,設置端口狀態(tài)以及獲取端口狀態(tài)等;
2)指示燈(Light)構件:點亮火熄滅出錯指示燈、運行指示燈;
3)Flash構件:將指定內(nèi)容寫入Flash的指定單元中,用于設置系統(tǒng)工作參數(shù);
4)以太網(wǎng)物理層收/發(fā)器(EPHY)構件:初始化EPHY模塊,獲取網(wǎng)絡連接狀態(tài);
5)快速以太網(wǎng)控制器(FEC)構件:初始化FEC模塊、發(fā)送以太幀、接收以太幀;
6)定時器(GPT)構件:初始化定時器;
7)模數(shù)轉換(AD)構件:初始化A/D轉換模塊、啟動A/D轉換、均值濾波等;
8)鍵盤(KeyBoard)構件:掃描并獲取鍵盤按鍵值;
9)液晶指示(LCD)構件:初始化LCD、顯示字符數(shù)據(jù)等。
(2)主程序設計
低端軟件的主程序負責獲取A/D采集數(shù)據(jù),再將A/D值轉換為物理量,并在LCD顯示屏上顯示。當檢測到用戶按鍵時,根據(jù)不同的按鍵,完成不同的功能,流程如圖8所示。

低端軟件主程序流程圖

(3)中斷程序設計
低端軟件的中斷程序主要響應PC需要數(shù)據(jù)的請求。當接收到PC發(fā)生的一條命令后,低端軟件進入FEC接收中斷。在中斷服務子程序中,首先獲取接收幀內(nèi)容并分析,根據(jù)命令的不同,將相關數(shù)據(jù)組裝成以太幀,并將幀內(nèi)容寫入到FEC模塊的發(fā)送緩沖區(qū)中,然后再通過發(fā)送緩沖區(qū)描述激活寄存器TDAR將其發(fā)送出去。
(4)高端軟件設計
PC的高端軟件需要實現(xiàn)的功能是:向低端程序提出稱重數(shù)據(jù)請求并等待接收,對接收到的數(shù)據(jù)進行存儲、顯示、磅單以及報表打印等。其開發(fā)環(huán)境使用MicrosoftVisualStudio2010,編程語言使用VB.NET。運行界面如圖9所示。

高端程序運行界面圖

三、結語
構件重用技術在嵌入式稱重物聯(lián)網(wǎng)開發(fā)中的應用,使得整個開發(fā)過程構件化,減少了開發(fā)時間、提高了開發(fā)效率,保證了開發(fā)質量和產(chǎn)品的可靠性,使得應用系統(tǒng)的開發(fā)流程標準化、易于管理,降低了維護難度和工作量。同時,也需要我們加強構件庫的建設與管理,積累更多的可重用構件,使得應用系統(tǒng)更好更快地開發(fā)。

 

本文源于網(wǎng)絡轉載,如有侵權,請聯(lián)系刪除

分享到