![基于嵌入式Linux的無(wú)紙記錄儀通信設(shè)計(jì)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/13/30204107-3bcf-4368-81bd-2209ec366ba3/30204107-3bcf-4368-81bd-2209ec366ba31.gif)
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于嵌入式linux的無(wú)紙記錄儀通信設(shè)計(jì)在工業(yè)控制系統(tǒng)中,記錄儀起著非常重要的作用,它可以實(shí)時(shí)采集、監(jiān)測(cè)和記錄一些影響工藝過(guò)程和產(chǎn)品質(zhì)量的重要參數(shù),被廣泛應(yīng)用于石化、冶金、電力、機(jī)械、醫(yī)藥、輕工業(yè)等行業(yè)。隨著技術(shù)的不斷進(jìn)展,記錄儀已從傳統(tǒng)的有紙模擬式進(jìn)展到如今的無(wú)紙數(shù)字式1。與傳統(tǒng)的有紙記錄儀相比,無(wú)紙記錄儀無(wú)機(jī)械磨損、顯示直觀、用法便利、故障率低和設(shè)備耗材少,因此被越來(lái)越多的應(yīng)用于工業(yè)控制領(lǐng)域。隨著工業(yè)過(guò)程自動(dòng)化的高速進(jìn)展,企業(yè)對(duì)無(wú)紙記錄儀提出了越來(lái)越高的要求,基于8位的無(wú)紙記錄儀的功能已遠(yuǎn)遠(yuǎn)達(dá)不到用戶的要求。微處理核的32位risc處理器以其強(qiáng)大的性能豐盛的接口以及優(yōu)異的性價(jià)比等諸多優(yōu)勢(shì),
2、而被越來(lái)越多的應(yīng)用于無(wú)紙記錄儀,隨著硬件的改進(jìn),傳統(tǒng)的串行通訊辦法也迫切需要改進(jìn),因此本文提出了基于嵌入式的串口通信計(jì)劃。嵌入式linux操作系統(tǒng)是在標(biāo)準(zhǔn)linux的基礎(chǔ)上針對(duì)嵌入式系統(tǒng)舉行內(nèi)核裁剪和優(yōu)化后形成2,它繼承了linux的開(kāi)放源代碼、多任務(wù)、穩(wěn)定性高,內(nèi)核可裁剪等諸多優(yōu)點(diǎn),其內(nèi)核精簡(jiǎn)而高效,具有十分好的網(wǎng)絡(luò)性能。本文將用法嵌入式linux作為無(wú)紙記錄儀上位機(jī)操作系統(tǒng),并利用其多線程編程技術(shù)實(shí)現(xiàn)上位機(jī)與下位機(jī)的串口通信。1 記錄儀中的通信協(xié)議因?yàn)闊o(wú)紙記錄儀主要在過(guò)程控制現(xiàn)場(chǎng)或監(jiān)控室中用法,與之舉行通信的現(xiàn)場(chǎng)設(shè)備接口以串口居多,因此在該裝置的開(kāi)發(fā)過(guò)程中采納非常通用的modbus協(xié)議作為
3、串口通信協(xié)議。 modbus協(xié)議是modicon公司于1979年為建立智能設(shè)備間的主從式通信而開(kāi)發(fā)的一種通信協(xié)議,它規(guī)定在一個(gè)系統(tǒng)中,每次指令應(yīng)由系統(tǒng)中主設(shè)備發(fā)起,從設(shè)備通過(guò)解析地址位打算是否應(yīng)答3。該協(xié)議具有兩種報(bào)文傳送幀格式,ascii和rtu報(bào)文幀格式,分離1和圖2所示。將兩種報(bào)文傳送幀格式異同總結(jié)如表1。由表1可知,兩種報(bào)文幀格式各有優(yōu)劣:ascii格式用法的字符是rtu格式的兩倍,但ascii格式數(shù)據(jù)的譯碼和處理更為簡(jiǎn)單一些;用法rtu報(bào)文幀格式傳輸數(shù)據(jù)時(shí),報(bào)文字符必需以延續(xù)數(shù)據(jù)流的形式傳送,而用法ascii格式,字符之間允許長(zhǎng)達(dá)1s的時(shí)光間隔。表1 ascii與rtu報(bào)文幀格式比較
4、通常狀況下,在一個(gè)modbus網(wǎng)絡(luò)中只采納一種報(bào)文幀格式舉行數(shù)據(jù)交換。但在一些特別狀況下,同一系統(tǒng)中需要用到不同傳輸模式的控制器,即同時(shí)采納兩種報(bào)文幀傳輸格式。為了使無(wú)紙記錄儀具有更強(qiáng)的通用性,本文提出了一種新的可同時(shí)用法兩種報(bào)文幀格式的串口通信計(jì)劃。在以下闡述過(guò)程中, 以ascii和rtu報(bào)文幀格式傳輸?shù)臄?shù)據(jù)將分離簡(jiǎn)稱為ascii和rtu數(shù)據(jù)。2 記錄儀的通信實(shí)現(xiàn)2.1 整體設(shè)計(jì)無(wú)紙記錄儀主要通信對(duì)象為工業(yè)現(xiàn)場(chǎng)設(shè)備,因此通信過(guò)程中數(shù)據(jù)交換應(yīng)迅速、精確無(wú)誤。在modbus協(xié)議中,ascii與rtu數(shù)據(jù)打包與解碼均不相同,數(shù)據(jù)讀寫(xiě)方面需要自立起來(lái)。串口通信功能框架3所示。圖3 串口通信功能框架圖
5、設(shè)備注冊(cè)掃描模塊主要負(fù)責(zé)設(shè)備地址表的維護(hù),每間隔一定時(shí)光掃描在線設(shè)備,并記錄下設(shè)備地址和用法的報(bào)文幀格式,同時(shí)按照掃描得到信息動(dòng)態(tài)開(kāi)拓ascii和rtu數(shù)據(jù)緩存區(qū)。ascii數(shù)據(jù)讀寫(xiě)模塊負(fù)責(zé)打包和解碼ascii數(shù)據(jù),rtu數(shù)據(jù)讀寫(xiě)模塊負(fù)責(zé)打包和解碼rtu數(shù)據(jù)。數(shù)據(jù)發(fā)送模塊按照優(yōu)先級(jí)羅列好打包好的數(shù)據(jù)依次發(fā)送。數(shù)據(jù)接收模塊僅解碼下位機(jī)儀表每次傳回?cái)?shù)據(jù)的首位,推斷是rtu數(shù)據(jù)還是ascii數(shù)據(jù),存入rtu或ascii數(shù)據(jù)緩存區(qū),以待處理。為了實(shí)現(xiàn)ascii與rtu數(shù)據(jù)的共存,首要問(wèn)題是每次設(shè)備掃描注冊(cè)時(shí)對(duì)用法ascii和用法rtu數(shù)據(jù)的設(shè)備加以區(qū)別。由ascii和rtu的報(bào)文幀格式可知,傳輸數(shù)據(jù)首
6、位是推斷數(shù)據(jù)類型的關(guān)鍵,所以用法rtu報(bào)文幀格式的設(shè)備地址需避免ascii數(shù)據(jù)的起始位和結(jié)束符。在未知在線設(shè)備狀況下,上位機(jī)將全部設(shè)備地址輪詢一遍,解析接收數(shù)據(jù)首位,假如是ascii的起始位,則ascii設(shè)備注冊(cè),反之,則rtu設(shè)備注冊(cè)。2.2 編程實(shí)現(xiàn)軟件實(shí)現(xiàn)上,采納linux的多線程編程技術(shù),可以更好的滿足工業(yè)現(xiàn)場(chǎng)的實(shí)時(shí)性要求。多線程程序采納多任務(wù)、并發(fā)的工作方式4,可以提高應(yīng)用程序響應(yīng)時(shí)光并且充實(shí)程序結(jié)構(gòu)。linux操作系統(tǒng)中提供了linuxthread 庫(kù)5,它實(shí)現(xiàn)了符合posix1003.1c標(biāo)準(zhǔn)的多線程支持,而且是內(nèi)核級(jí)方式。串口通信通過(guò)三個(gè)線程來(lái)實(shí)現(xiàn),主線程、發(fā)送子線程和接收數(shù)據(jù)
7、處理子線程,4所示。同時(shí),為了使收發(fā)數(shù)據(jù)管理越發(fā)便利,建立了四個(gè)數(shù)據(jù)緩存區(qū): 發(fā)送緩存區(qū),存放預(yù)備發(fā)送的指令; 已發(fā)送緩存區(qū),存放已發(fā)送好但未經(jīng)接收確認(rèn)的指令; rtu接收緩存區(qū),存放接收到的rtu數(shù)據(jù); ascii接收緩存區(qū),存放接收到的ascii數(shù)據(jù)。全部線程分享上述四個(gè)數(shù)據(jù)緩存區(qū)的數(shù)據(jù),并設(shè)置互斥鎖用來(lái)確保一個(gè)時(shí)光段內(nèi)惟獨(dú)一個(gè)任務(wù)在拜訪分享數(shù)據(jù)。圖4 串口通信多線程程序流程圖主線程主要負(fù)責(zé)設(shè)備的注冊(cè),掃描是否有數(shù)據(jù)發(fā)送,假如有發(fā)送數(shù)據(jù),舉行優(yōu)先級(jí)設(shè)置,將發(fā)送數(shù)據(jù)轉(zhuǎn)為發(fā)送所需的ascii和rtu格式,存入發(fā)送緩存區(qū)以待發(fā)送。串口初始化主要功能為設(shè)置串口通信屬性,如波特率、數(shù)據(jù)位、校驗(yàn)位和流
8、控制等。串口通信采納異步通信模式,并以全局變量作為接收標(biāo)記。解析數(shù)據(jù)時(shí)應(yīng)將已收到數(shù)據(jù)和已發(fā)送數(shù)據(jù)舉行匹配,按照發(fā)送的數(shù)據(jù)分析接收數(shù)據(jù)是否正確,假如接收數(shù)據(jù)正確則丟棄已發(fā)送指令,否則重發(fā)。3 迅速數(shù)據(jù)轉(zhuǎn)換算法因?yàn)樯衔粰C(jī)與下位機(jī)的個(gè)別數(shù)據(jù)存儲(chǔ)格式不同,需要轉(zhuǎn)換為對(duì)方能夠識(shí)別的數(shù)據(jù)。下面以浮點(diǎn)數(shù)為例,解釋本次設(shè)計(jì)中的數(shù)據(jù)轉(zhuǎn)換機(jī)制。上位機(jī)采納linux操作系統(tǒng),浮點(diǎn)數(shù)采納ieee-754數(shù)據(jù)存儲(chǔ)格式。ieee規(guī)定一個(gè)浮點(diǎn)數(shù)在內(nèi)存中占四字節(jié),其數(shù)據(jù)格式5所示。圖5 ieee浮點(diǎn)數(shù)數(shù)據(jù)格式在ieee浮點(diǎn)數(shù)數(shù)據(jù)存儲(chǔ)格式下,第1位為符號(hào)位,指示浮點(diǎn)數(shù)的正負(fù)。指數(shù)部分共8位,第一個(gè)字節(jié)的后7位和其次個(gè)字節(jié)的第1
9、位,表示范圍是0 255。事實(shí)上的指數(shù)值應(yīng)是-128 127的有符號(hào)整數(shù),為了存儲(chǔ)便利,指數(shù)值都加127轉(zhuǎn)為0 255存儲(chǔ),即實(shí)際指數(shù)值是e-127。最后23位為小數(shù)部分,需要注重的是,在計(jì)算時(shí),要將小數(shù)部分最高位補(bǔ)1。因此,實(shí)際的浮點(diǎn)數(shù)值可以通過(guò)下面的公式計(jì)算:real =(-1)*sign*(d/224)*2e-126下位機(jī)浮點(diǎn)數(shù)在內(nèi)存中同樣占四字節(jié),其數(shù)據(jù)格式6所示。圖6 下位機(jī)浮點(diǎn)數(shù)數(shù)據(jù)格式下位機(jī)浮點(diǎn)數(shù)數(shù)據(jù)格式中,數(shù)符用來(lái)指示浮點(diǎn)數(shù)的正負(fù),階符用于指示指數(shù)的正負(fù),階碼有6位,即指數(shù)范圍是064,小數(shù)部分比ieee浮點(diǎn)數(shù)數(shù)據(jù)格式中多1位,因此在計(jì)算時(shí)高位無(wú)需補(bǔ)1。實(shí)際的浮點(diǎn)數(shù)數(shù)值可以通過(guò)
10、下面公式計(jì)算:real =(-1)*sign*(d/224)*2(-1)*signe*e實(shí)際傳輸過(guò)程中,從下位機(jī)傳來(lái)的浮點(diǎn)數(shù),需要先轉(zhuǎn)為ieee標(biāo)準(zhǔn)格式,傳給下位機(jī)的數(shù)據(jù)同樣需要轉(zhuǎn)為下位機(jī)能夠識(shí)別的格式。因?yàn)楦↑c(diǎn)數(shù)存儲(chǔ)格式復(fù)雜,在轉(zhuǎn)換數(shù)據(jù)時(shí)應(yīng)盡量避開(kāi)用法浮點(diǎn)數(shù)運(yùn)算。通過(guò)比較圖5和圖6可知,兩種存儲(chǔ)格式的最后23位相同,可以共用。因此,在編程時(shí),采納共同體能夠更快的解決兩者之間的轉(zhuǎn)換。編寫(xiě)共同體如下:union float fdata;unsigned char byte4;data_change;fdata中存放轉(zhuǎn)換前得浮點(diǎn)數(shù),而字符型數(shù)組byte挺直對(duì)應(yīng)浮點(diǎn)數(shù)在計(jì)算機(jī)中以二進(jìn)制存儲(chǔ)的四個(gè)字節(jié)。通過(guò)對(duì)字符型數(shù)組的容易的加減法及移位計(jì)算就可以迅速在兩種存儲(chǔ)格式之間轉(zhuǎn)換。 實(shí)際測(cè)試時(shí),采納共同體的數(shù)據(jù)轉(zhuǎn)換在響應(yīng)時(shí)光上要顯然優(yōu)于未采納共同體的數(shù)制轉(zhuǎn)換,提高了串口通信的實(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度古董字畫(huà)修復(fù)與藝術(shù)品修復(fù)設(shè)備租賃合同
- 2025年度果園果樹(shù)品種引進(jìn)與繁育合同范本
- 2025年度債權(quán)債務(wù)重組以物抵債服務(wù)合同
- 2025年度汽車售后服務(wù)連鎖經(jīng)營(yíng)合同范本詳釋
- 2025食品批發(fā)合同范本
- 2025年度進(jìn)口貨物反傾銷及反補(bǔ)貼調(diào)查合同
- 二零二五年度勞務(wù)輸出與勞動(dòng)保護(hù)用品供應(yīng)合同2篇
- 2025年度全國(guó)區(qū)域品牌代理合同范本
- 2025重慶市農(nóng)藥買賣合同
- 2025銷售合同擔(dān)保協(xié)議范本
- (二模)遵義市2025屆高三年級(jí)第二次適應(yīng)性考試試卷 地理試卷(含答案)
- 二零二五隱名股東合作協(xié)議書(shū)及公司股權(quán)代持及回購(gòu)協(xié)議
- 2025年計(jì)算機(jī)二級(jí)WPS考試題目
- 高管績(jī)效考核全案
- 《經(jīng)濟(jì)思想史》全套教學(xué)課件
- 環(huán)境衛(wèi)生學(xué)及消毒滅菌效果監(jiān)測(cè)
- 對(duì)合同條款有異議函
- 中醫(yī)館工作細(xì)則
- 尋夢(mèng)緣古法駐顏培訓(xùn)課件
- 建設(shè)用地報(bào)批服務(wù)投標(biāo)方案(技術(shù)方案)
- 2023年11月英語(yǔ)二級(jí)筆譯真題及答案(筆譯實(shí)務(wù))
評(píng)論
0/150
提交評(píng)論