麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種基于單片機(jī)的串行通信控制系統(tǒng)及方法與流程

文檔序號:12464359閱讀:579來源:國知局
一種基于單片機(jī)的串行通信控制系統(tǒng)及方法與流程

本發(fā)明涉及通信控制領(lǐng)域,尤其涉及一種串行通信控制系統(tǒng)及方法,用于單片機(jī)與計算機(jī)、處理模塊的通信。



背景技術(shù):

隨著電子技術(shù)的發(fā)展和電子系統(tǒng)需求的增長,各種大小型通信控制系統(tǒng)層出不窮,通常其數(shù)據(jù)通信控制多采用專用控制器來實現(xiàn)。采用專用控制器雖然能夠完成通信控制的功能,但由于其是專門為某一特定應(yīng)用場景設(shè)計,就勢必導(dǎo)致其具備應(yīng)用局限性,更換了應(yīng)用場景原有控制器就不兼容了。同時采用專用控制器就必須為其預(yù)留電路接口,增加了設(shè)計和結(jié)構(gòu)的復(fù)雜度。而往往專用控制器價格昂貴,不利于控制開發(fā)成本,在簡單的系統(tǒng)應(yīng)用中使用也沒有太大的意義。



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

為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于單片機(jī)的串行通信控制系統(tǒng)。

本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種基于單片機(jī)的串行通信控制系統(tǒng),包括上位機(jī)、單片機(jī)和處理模塊;所述單片機(jī)內(nèi)部配置程序存儲區(qū)和數(shù)據(jù)存儲區(qū),外部配置232串行接口、SPI串行接口、8位并行接口和中斷信號線;所述程序存儲區(qū)用于存儲給處理模塊的控制參數(shù);所述數(shù)據(jù)存儲區(qū)用于存儲處理模塊發(fā)送給單片機(jī)的應(yīng)用數(shù)據(jù);所述232串行接口用于連接上位機(jī)和單片機(jī)的通信;所述SPI串行接口用于單片機(jī)與處理模塊之間傳送控制參數(shù)的通信線路;所述處理模塊將接收單片機(jī)發(fā)送的控制參數(shù)和給單片機(jī)回送應(yīng)用數(shù)據(jù);8位并行接口用來傳送處理模塊生成的應(yīng)用數(shù)據(jù);中斷信號線是給單片機(jī)返回處理模塊產(chǎn)生的數(shù)據(jù)中斷信號。

所述232串行接口通信線路采用兩線制,包括TXD和RXD信號,分別代表發(fā)送信號線和接收信號線。

所述SPI串行接口通信線路采用四線制,包括SCK、MOSI、MISO、NSS信號,分別表示時鐘信號、主發(fā)送從接收信號、主接收從發(fā)送信號、設(shè)備選擇信號。

所述數(shù)據(jù)中斷信號采用下降沿觸發(fā),在處理模塊生成應(yīng)用數(shù)據(jù)后,中斷信號線上的電平被拉低設(shè)定時長。

本發(fā)明還提供一種基于上述系統(tǒng)的串行通信控制方法,包括以下步驟:

(1)初始化程序存儲區(qū)的控制參數(shù);

(2)等待上位機(jī)發(fā)送的串口指令,若沒有收到串口指令則進(jìn)入步驟(3),若收到串口指令則進(jìn)入步驟(6);

(3)判斷串口等待是否超時,若超時則進(jìn)入步驟(4),若不超時則返回步驟(2);

(4)將程序存儲區(qū)的控制參數(shù)發(fā)送給處理模塊;處理模塊將外部輸入的信號進(jìn)行處理,處理后生成應(yīng)用數(shù)據(jù)并產(chǎn)生中斷信號;

(5)等待數(shù)據(jù)中斷,如果檢測到中斷則把處理模塊生成的應(yīng)用數(shù)據(jù)存儲到數(shù)據(jù)存儲區(qū);沒有檢測到中斷則繼續(xù)等待數(shù)據(jù)中斷;

(6)判斷串口指令是否是有效指令,并根據(jù)有效指令執(zhí)行相應(yīng)函數(shù)。

所述的串口指令中,有效指令包括更改程序存儲區(qū)的控制參數(shù)、返回程序存儲區(qū)的控制參數(shù)、發(fā)送控制參數(shù)給處理模塊、正常運行;如收到的串口指令數(shù)據(jù)不在有效指令之列,則判斷為無效指令;所述函數(shù)包含串口接收函數(shù)、串口發(fā)送函數(shù)、控制參數(shù)下發(fā)函數(shù)、讀取控制參數(shù)函數(shù)、寫控制參數(shù)函數(shù)、數(shù)據(jù)存儲函數(shù);串口接收函數(shù)通過外部中斷來告知單片機(jī)檢測到串口接收緩沖區(qū)收到上位機(jī)發(fā)送的數(shù)據(jù),并在判斷滿足接收條件完畢之后,產(chǎn)生接收完畢握手信號;串口發(fā)送函數(shù)用來返回單片機(jī)發(fā)送給上位機(jī)的數(shù)據(jù);參數(shù)下發(fā)函數(shù)是通過SPI接口將程序存儲區(qū)中的控制參數(shù)發(fā)送給處理模塊;讀取控制參數(shù)函數(shù)將訪問程序存儲區(qū)的用戶區(qū),將其中表示控制參數(shù)的數(shù)據(jù)讀取出來;寫控制參數(shù)函數(shù)將表示控制參數(shù)的數(shù)據(jù)寫入到程序存儲區(qū)的用戶區(qū);數(shù)據(jù)存儲函數(shù)用于將來自處理模塊的應(yīng)用數(shù)據(jù)存儲到數(shù)據(jù)存儲區(qū)。

所述有效指令用一個單字節(jié)的無符號數(shù)表示。

所述表示有效指令的單字節(jié)無符號數(shù)取自串口接收數(shù)據(jù)的第一個字節(jié)。

本發(fā)明的有益效果是:

(1)針對外圍模塊通信方式使用相應(yīng)串行通信方式,不僅能夠發(fā)揮不同串行通信方式的通信速率,又能適應(yīng)不同通信方式的外圍設(shè)備,增加了擴(kuò)展性。

(2)通過在單片機(jī)上實現(xiàn)串行通信控制,所需信號線非常少,結(jié)構(gòu)簡單,能有效節(jié)省印制電路板的空間。

(3)因結(jié)構(gòu)簡單可以很方便的移植到不同的應(yīng)用場景中,通用性強(qiáng)。而且單片機(jī)成本較專用控制器成本大大降低。

附圖說明

圖1是本發(fā)明所提供的一種基于單片機(jī)的串行通信控制系統(tǒng)的結(jié)構(gòu)示意圖;

圖2是本發(fā)明所提供的一種基于單片機(jī)的串行通信控制方法的流程圖;

圖3是本發(fā)明所提供的一種基于單片機(jī)的串行通信控制方法中所述根據(jù)指令執(zhí)行相應(yīng)函數(shù)的流程圖。

具體實施方式

下面結(jié)合附圖和實施例對本發(fā)明進(jìn)一步說明,本發(fā)明包括但不僅限于下述實施例。

本發(fā)明提供一種基于單片機(jī)的串行通信控制系統(tǒng),該系統(tǒng)包括上位機(jī)、單片機(jī)和處理模塊。所述單片機(jī)內(nèi)部配置程序存儲區(qū),數(shù)據(jù)存儲區(qū),外部配置232串行接口,SPI串行接口,8位并行接口,中斷信號線;所述程序存儲區(qū)用于存儲給處理模塊的控制參數(shù);所述數(shù)據(jù)存儲區(qū)用于存儲處理模塊發(fā)送給單片機(jī)的應(yīng)用數(shù)據(jù);所述232串行接口用于連接上位機(jī)和單片機(jī)的通信;所述SPI串行接口用于單片機(jī)與處理模塊之間傳送控制參數(shù)的通信線路;所述處理模塊將接收單片機(jī)發(fā)送的控制參數(shù)和給單片機(jī)回送應(yīng)用數(shù)據(jù)。8位并行接口用來傳送處理模塊生成的應(yīng)用數(shù)據(jù);中斷信號線是給單片機(jī)返回處理模塊產(chǎn)生的數(shù)據(jù)中斷信號。

較佳地,所述232串行接口通信線路采用兩線制,包括TXD和RXD信號,分別代表發(fā)送信號線和接收信號線。

較佳地,所述SPI串行接口通信線路采用四線制,包括SCK、MOSI、MISO、NSS信號,分別表示時鐘信號、主發(fā)送從接收信號、主接收從發(fā)送信號、設(shè)備選擇信號。

較佳地,中斷信號采用下降沿觸發(fā)。在處理模塊生成應(yīng)用數(shù)據(jù)后,中斷信號線上的電平被拉低一段時間。

本發(fā)明提供一種基于單片機(jī)的串行通信控制方法,該方法包括步驟:

步驟1,等待串口指令,等待上位機(jī)給串口發(fā)送指令數(shù)據(jù);

步驟2,判斷串口等待是否超時,判斷串口等待時間是否超過規(guī)定時間;

步驟3,下發(fā)控制參數(shù),將程序存儲區(qū)的控制參數(shù)發(fā)送給處理模塊;

步驟4,等待數(shù)據(jù)中斷,處理模塊在生成應(yīng)用數(shù)據(jù)后將產(chǎn)生中斷信號;

步驟5,判斷串口指令,并根據(jù)串口指令執(zhí)行相應(yīng)函數(shù)。

在本發(fā)明所述方法中,在執(zhí)行所述步驟1等待串口指令時,如果沒有收到串口指令數(shù)據(jù)則會執(zhí)行所述步驟2判斷串口等待是否超時;若收到串口指令數(shù)據(jù)則會執(zhí)行所述步驟5判斷串口指令。

在本發(fā)明所述方法中,在執(zhí)行所述步驟2判斷串口等待超時時,滿足超時條件將判斷為超時,將執(zhí)行步驟3下發(fā)控制參數(shù);不滿足超時,則繼續(xù)執(zhí)行步驟1等待串口指令。

在本發(fā)明所述方法中,在執(zhí)行所述步驟4等待數(shù)據(jù)中斷時,處理模塊將外部輸入的信號進(jìn)行處理,處理后生成應(yīng)用數(shù)據(jù)并產(chǎn)生中斷信號。如果檢測到中斷,則把處理模塊準(zhǔn)備好的應(yīng)用數(shù)據(jù)存儲到數(shù)據(jù)存儲區(qū);沒有檢測到中斷,則繼續(xù)在步驟4等待數(shù)據(jù)中斷。

在本發(fā)明所述方法中,在執(zhí)行所述步驟5判斷串口指令并根據(jù)串口指令執(zhí)行相應(yīng)函數(shù)時,有效指令包括更改程序存儲區(qū)的控制參數(shù),返回程序存儲區(qū)的控制參數(shù),發(fā)送控制參數(shù)給處理模塊,正常運行。如收到的串口指令數(shù)據(jù)不在有效指令之列,則判斷為無效指令。步驟5中所述函數(shù)包含串口接收函數(shù)、串口發(fā)送函數(shù)、控制參數(shù)下發(fā)函數(shù)、讀取控制參數(shù)函數(shù)、寫控制參數(shù)函數(shù)、數(shù)據(jù)存儲函數(shù)。串口接收函數(shù)通過外部中斷來告知單片機(jī)檢測到串口接收緩沖區(qū)收到上位機(jī)發(fā)送的數(shù)據(jù),并在判斷滿足接收條件完畢之后,產(chǎn)生接收完畢握手信號;串口發(fā)送函數(shù)用來返回單片機(jī)發(fā)送給上位機(jī)的數(shù)據(jù);參數(shù)下發(fā)函數(shù)是通過SPI接口將程序存儲區(qū)中的控制參數(shù)發(fā)送給處理模塊;讀取控制參數(shù)函數(shù)將訪問程序存儲區(qū)的用戶區(qū),將其中表示控制參數(shù)的數(shù)據(jù)讀取出來;寫控制參數(shù)函數(shù)將表示控制參數(shù)的數(shù)據(jù)寫入到程序存儲區(qū)的用戶區(qū);數(shù)據(jù)存儲函數(shù)用于將來自處理模塊的應(yīng)用數(shù)據(jù)存儲到數(shù)據(jù)存儲區(qū)。

較佳地,所述有效指令用一個單字節(jié)的無符號數(shù)表示。

較佳地,所述表示有效指令的單字節(jié)無符號數(shù)取自串口接收數(shù)據(jù)的第一個字節(jié)。

本發(fā)明實施例所提供的一種基于單片機(jī)的串行通信控制系統(tǒng)包括上位機(jī)、單片機(jī)和處理模塊,如圖1所示。

在單片機(jī)內(nèi)部配置有程序存儲區(qū)和數(shù)據(jù)存儲區(qū),程序存儲區(qū)用于存儲給處理模塊的控制參數(shù),數(shù)據(jù)存儲區(qū)用于存儲來自處理模塊的應(yīng)用數(shù)據(jù)。

在單片機(jī)的外圍設(shè)置有232串行接口和SPI串行接口,8位并行數(shù)據(jù)接口,INT#中斷信號線。232串行接口通過TXD、RXD信號線與上位機(jī)物理連接。SPI串行接口通過SCK、MOSI、MISO、NSS信號線與處理模塊物理連接。8位并行數(shù)據(jù)接口通過D0-D7信號線與上位機(jī)連接。中斷信號線通過INT#將處理模塊與單片機(jī)連接起來。

本發(fā)明實施例所提供的一種基于單片機(jī)的串行通信控制方法的流程圖如圖2所示,實現(xiàn)步驟如下:

首先等待串口指令,如果本次未收到串口指令,則檢查串口等待是否超時,未超時則繼續(xù)等待串口指令;如果串口等待超時,則開始下發(fā)控制參數(shù)。如果收到串口指令,則對串口指令進(jìn)行判斷。

執(zhí)行下發(fā)控制參數(shù)時,從程序存儲區(qū)讀取控制參數(shù),通過調(diào)用控制參數(shù)下發(fā)函數(shù),把控制參數(shù)發(fā)送給處理模塊。下發(fā)控制參數(shù)執(zhí)行完畢后,則等待數(shù)據(jù)中斷。在未檢測到數(shù)據(jù)中斷時,將一直等待。檢測到數(shù)據(jù)中斷后將執(zhí)行存儲應(yīng)用數(shù)據(jù)。

執(zhí)行存儲應(yīng)用數(shù)據(jù)時,單片機(jī)通過8位并口接收處理模塊生成的應(yīng)用數(shù)據(jù),并存儲到片內(nèi)的數(shù)據(jù)存儲區(qū)。存儲應(yīng)用數(shù)據(jù)完畢后,則繼續(xù)等待數(shù)據(jù)中斷。

圖2中module命名的方框表示根據(jù)指令執(zhí)行相應(yīng)函數(shù)的過程,為了進(jìn)一步闡述這個過程,將module擴(kuò)展之后用圖3表示。圖中點劃線框表示函數(shù)。

收到串口指令后,將表示指令的單字節(jié)無符號數(shù)與表示有效指令的單字節(jié)無符號數(shù)進(jìn)行一一比對:

為指令1時,更改程序存儲區(qū)的控制參數(shù),通過調(diào)用寫控制參數(shù)函數(shù),從串口緩沖區(qū)獲取控制參數(shù)然后寫入到程序存儲區(qū);

為指令2時,返回程序存儲區(qū)的控制參數(shù),通過讀取控制參數(shù)函數(shù),從程序存儲區(qū)讀出控制參數(shù),并調(diào)用串口發(fā)送函數(shù)將控制參數(shù)發(fā)送給上位機(jī);

為指令3時,給處理模塊發(fā)送控制參數(shù),通過控制參數(shù)下發(fā)函數(shù),先從程序存儲區(qū)獲取控制參數(shù),通過SPI總線將控制參數(shù)發(fā)送給處理模塊;

為指令4時,將不再響應(yīng)串口發(fā)送的指令,切換到正常運行模式,緊接著將控制參數(shù)下發(fā)給處理模塊。最后回到所述方法中下發(fā)控制參數(shù)執(zhí)行完畢之后的步驟。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 左权县| 莱西市| 佛学| 临沭县| 延津县| 新余市| 兰考县| 淮安市| 军事| 师宗县| 饶平县| 内黄县| 称多县| 尼勒克县| 攀枝花市| 荥阳市| 伊金霍洛旗| 瑞金市| 万盛区| 凉城县| 保山市| 宜兰市| 安阳县| 黔西县| 邵武市| 阜新| 客服| 奈曼旗| 隆回县| 车致| 定兴县| 高要市| 内丘县| 文水县| 咸丰县| 花莲市| 清河县| 全椒县| 黄陵县| 鄂尔多斯市| 泰州市|