欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于DSP/BIOS的MODBUS消息幀接收方法與流程

文檔序號:11959898閱讀:878來源:國知局
用于DSP/BIOS的MODBUS消息幀接收方法與流程

本發(fā)明涉及MODBUS消息幀接收方法,具體涉及一種用于DSP/BIOS的MODBUS消息幀接收方法。



背景技術(shù):

Modbus是由Modicon在1979年發(fā)明的全球第一個真正用于工業(yè)現(xiàn)場的總線協(xié)議,已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議標(biāo)準(zhǔn),也得到廣泛應(yīng)用。確定通訊線路的空閑時間并由此準(zhǔn)確區(qū)分兩消息幀,一直是MODBUS通訊過程必須解決的重要問題?,F(xiàn)有技術(shù)中,微處理器和MODBUS設(shè)備的通訊全都采用定時器中斷的方法來實現(xiàn),即令定時器定時值等于消息幀幀間時間間距,在每次進入SCI中斷程序時重置定時器的當(dāng)前計時值,當(dāng)進入定時器中斷程序時,就說明當(dāng)前消息幀已完成傳輸,此技術(shù)可見于《煤礦機械》2013年發(fā)表的《基于STM32F103和MODBUS的礦用DTU測試系統(tǒng)設(shè)計》、王諦的《基于MODBUS協(xié)議的PC機與dsPIC6014處理器的通訊》、《實驗室研究與探索》2012年發(fā)表的《基于Modbus協(xié)議的S7-200系列PLC與單片機主從通信研究》等。這種方法雖然簡單并容易實現(xiàn),但占用了微處理器寶貴的定時器資源,使其硬件資源得不到有效利用,也提高了自動控制系統(tǒng)對微處理器的外設(shè)資源需求。



技術(shù)實現(xiàn)要素:

為了解決上述現(xiàn)有的MODBUS通訊技術(shù)占用微處理器定時器資源的問題,本發(fā)明提供了一種用于DSP/BIOS的MODBUS消息幀接收方法。

為實現(xiàn)上述目的,本發(fā)明采用下述技術(shù)方法:

一種用于DSP/BIOS的MODBUS消息幀接收方法,基于DSP/BIOS軟件平臺實現(xiàn),包括消息幀接收流程和消息幀處理流程,所述消息幀接收流程選擇SCI硬件中斷線程實現(xiàn),所述消息幀處理流程選擇周期軟中斷線程實現(xiàn)。

進一步地,所述的SCI硬件中斷線程具體運行過程為:

(1)串口接收到1字符數(shù)據(jù)后進入SCI硬件中斷線程;

(2)重置消息幀處理周期軟中斷線程計時時鐘;

(3)讀取接收到的數(shù)據(jù),并保存到接收幀數(shù)組中當(dāng)前成員號值指向的成員;

(4)接收幀數(shù)組當(dāng)前成員號加1;

(5)從SCI硬件中斷線程返回;

進一步地,消息幀處理周期軟中斷線程計時時鐘由系統(tǒng)時鐘驅(qū)動。

進一步地,消息幀處理周期軟中斷線程時鐘周期為傳輸3.5字符數(shù)據(jù)所需的時間。

進一步地,消息幀處理周期軟中斷線程采用單次運行模式。

進一步地,所述的消息幀處理周期軟中斷線程具體運行過程為:

(1)消息幀處理周期軟中斷線程計時時鐘值等于設(shè)定的時鐘周期時進入運行;

(2)接收幀數(shù)組當(dāng)前成員號清零;

(3)數(shù)據(jù)處理;

(4)發(fā)送應(yīng)答消息幀;

(5)從消息幀處理周期軟中斷線程返回。

與現(xiàn)有技術(shù)相比,本發(fā)明采用系統(tǒng)時鐘取代現(xiàn)有技術(shù)中以定時器確定字符間隔時間并準(zhǔn)確區(qū)分兩消息幀的方法,可有效節(jié)省微處理器的硬件資源,降低自動化控制系統(tǒng)對微處理器的外設(shè)資源需求。

附圖說明

圖1為本發(fā)明實施例的消息幀接收流程圖;

圖2為本發(fā)明實施例的消息幀處理流程圖;

圖3為具體實施方式中TMS320F28335型DSP與MODBUS設(shè)備的連接圖。

具體實施方式

下面結(jié)合附圖和實例對本發(fā)明進一步說明。

如圖1和圖2所示,一種用于DSP/BIOS的MODBUS消息幀接收方法,基于DSP/BIOS軟件平臺實現(xiàn),包括消息幀接收流程和消息幀處理流程,所述消息幀接收流程選擇SCI硬件中斷線程實現(xiàn),所述消息幀處理流程選擇周期軟中斷線程實現(xiàn)。

具體而言,所述的SCI硬件中斷線程具體運行過程為:

(1)串口接收到1字符數(shù)據(jù)后進入SCI硬件中斷線程;

(2)重置消息幀處理周期軟中斷線程計時時鐘;

(3)讀取接收到的數(shù)據(jù),并保存到接收幀數(shù)組中當(dāng)前成員號值指向的成員;

(4)接收幀數(shù)組當(dāng)前成員號加1;

(5)從SCI硬件中斷線程返回。

具體而言,消息幀處理周期軟中斷線程計時時鐘由系統(tǒng)時鐘驅(qū)動。

具體而言,消息幀處理周期軟中斷線程時鐘周期為傳輸3.5字符數(shù)據(jù)所需的時間。

具體而言,消息幀處理周期軟中斷線程采用單次運行模式。

具體而言,所述的消息幀處理周期軟中斷線程具體運行過程為:

(1)消息幀處理周期軟中斷線程計時時鐘值等于設(shè)定的時鐘周期時進入運行;

(2)接收幀數(shù)組當(dāng)前成員號清零;

(3)數(shù)據(jù)處理;

(4)發(fā)送應(yīng)答消息幀;

(5)從消息幀處理周期軟中斷線程返回。

DSP是數(shù)字信號處理器的簡稱,本實例選用TI公司生產(chǎn)的C2000系列、型號為TMS320F28335的DSP處理器,TMS320F28335與MODBUS設(shè)備通過RS232連接(見圖3),波特率選用9600b/s,通訊模式采用MODBUS RTU,數(shù)據(jù)傳輸格式為1bit起始位、8bit數(shù)據(jù)位、1bit停止位、無校驗位。

DSP/BIOS是TI公司特別為其TMS320C6000TM,TMS320C5000TM和TMS320C28xTM系列DSP平臺所設(shè)計開發(fā)的一個尺寸可裁剪的實時多任務(wù)操作系統(tǒng)內(nèi)核。DSP支持四種不同優(yōu)先級的線程,按照優(yōu)先級從高到低順序排列,分別是硬件中斷(HWI)、軟件中斷(SWI)、任務(wù)(TSK)和后臺線程(IDL)。周期函數(shù)(PRD)是一種特殊的軟件中斷,當(dāng)其計時時鐘等于設(shè)定的時鐘周期值時進入就緒狀態(tài),其實例主要配置參數(shù)有:

(1)period:周期函數(shù)時鐘周期值,周期函數(shù)當(dāng)前時鐘計時值達到設(shè)定的時鐘周期值時進入就緒狀態(tài),計時時鐘可由系統(tǒng)時鐘驅(qū)動,或調(diào)用PRD_tick函數(shù)后加1;

(2)mode:周期函數(shù)運行模式,有連續(xù)運行(continuous)和單次觸發(fā)(one-shot)兩種。

本發(fā)明主要使用到的API函數(shù)及其功能如下:

(1)PRD_start:用于啟動一個周期函數(shù)的計時時鐘,該周期函數(shù)在啟動并等待設(shè)定的時鐘周期后進入運行。如果在周期函數(shù)當(dāng)前時鐘計時值達到設(shè)定的時鐘周期值前再次調(diào)用PRD_start,當(dāng)前時鐘計數(shù)值從零重新開始計時。

在TMS320F28335的DSP/BIOS程序中,將消息幀接收流程創(chuàng)建為SCI硬件中斷線程,消息幀處理流程創(chuàng)建為周期軟中斷線程。其中本發(fā)明的實現(xiàn)需要設(shè)置消息幀處理線程為單次觸發(fā)模式,且其時鐘周期值(period)設(shè)置為MODBUS通訊中兩消息幀或數(shù)據(jù)包之間的最小時間間隔,即3.5字符數(shù)據(jù)傳輸時間,其計時時鐘由系統(tǒng)時鐘驅(qū)動。在波特率為9600b/s、傳輸格式為10bit,消息幀處理周期軟中斷線程時鐘周期值如下:

<mrow> <mfrac> <mrow> <mn>3.5</mn> <mo>&times;</mo> <mn>10</mn> </mrow> <mn>9600</mn> </mfrac> <mo>&times;</mo> <mn>1000</mn> <mo>&ap;</mo> <mn>3.7</mn> <mi>m</mi> <mi>s</mi> <mo>,</mo> </mrow>

當(dāng)串口接收到MODBUS設(shè)備傳輸?shù)?字符數(shù)據(jù)時,DSP/BIOS程序進入消息幀接收線程。在該線程中,首先調(diào)用PRD_start函數(shù)啟動消息幀處理PRD線程的計時時鐘,然后從SCI接收寄存器中讀取數(shù)據(jù)并保存到接收幀數(shù)組,在令接收幀數(shù)組當(dāng)前成員號加1后返回。在同一個數(shù)據(jù)包的傳輸過程中,DSP/BIOS程序不斷重復(fù)以上過程。由于一個數(shù)據(jù)包中兩字符數(shù)據(jù)傳輸間隔小于消息幀處理周期軟中斷線程的時鐘周期值,并且每次進入SCI硬件中斷線程時調(diào)用PRD_start復(fù)位消息幀處理周期軟中斷線程的當(dāng)前計時時鐘值,因此DSP/BIOS程序不會進入消息幀處理周期軟中斷線程。而當(dāng)前消息幀傳輸完畢后,通訊線空閑時間大于消息幀處理周期軟中斷線程的時鐘周期值,該線程在當(dāng)前計時時鐘達到時鐘周期值后進入運行。

消息幀處理周期軟中斷線程負(fù)責(zé)處理接收到的消息幀。首先重置接收幀數(shù)組當(dāng)前成員號,以接收下一消息幀。然后對消息幀進行處理,如CRC校驗、提取消息幀數(shù)據(jù)域中的有效數(shù)據(jù)等。若TMS320F28335為MODBUS從機,根據(jù)對有效數(shù)據(jù)的解釋發(fā)送相應(yīng)的應(yīng)答消息幀后從該線程返回;若為MODBUS主機,則直接返回。

本發(fā)明的上述實施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對本發(fā)明的實施方式的限定。對于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動。這里無需也無法對所有的實施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
壶关县| 乌鲁木齐市| 青神县| 麻栗坡县| 微山县| 松原市| 松原市| 阳春市| 芮城县| 拉孜县| 婺源县| 岢岚县| 荥阳市| 深泽县| 浦东新区| 永仁县| 特克斯县| 青岛市| 合川市| 江华| 耒阳市| 太仆寺旗| 呼图壁县| 永安市| 吴川市| 鹰潭市| 永兴县| 松潘县| 资讯 | 广丰县| 邮箱| 大洼县| 上高县| 四会市| 平阳县| 乌兰察布市| 九龙县| 承德市| 涿州市| 东光县| 宜兰县|