freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm的以太網(wǎng)網(wǎng)關(guān)設(shè)計與實現(xiàn)畢業(yè)論文(更新版)

2025-09-05 10:41上一頁面

下一頁面
  

【正文】 ,而從控制室發(fā)送的命令信息可能較少,所以在這里建立一個線程負責(zé)接收以太網(wǎng)的數(shù)據(jù)一個線程 用于將數(shù)據(jù)轉(zhuǎn)發(fā)到生產(chǎn)現(xiàn)場,建立一個線程專門用于現(xiàn)場總線數(shù)據(jù)的讀取,將讀取的數(shù)據(jù)放到緩沖隊列中,若緩沖區(qū)滿則丟棄收到的數(shù)據(jù),另外建立一個或幾個線程用于將現(xiàn)場總線發(fā)送來的數(shù)據(jù)也就是緩沖區(qū)中的數(shù)據(jù)發(fā)送到以太網(wǎng)上,在排隊模型中這幾個線程相當(dāng)于服務(wù)臺,他們共同為一個隊列中的顧客服務(wù),也就是只設(shè)置一個緩沖隊列,每個服務(wù)臺都在這個隊列中取數(shù)據(jù)發(fā)送,為防止讀取沖突,線程在讀取數(shù)據(jù)時要對緩沖隊列加鎖防止其他進程修改隊列的頭尾指針 [14]。 CAN_Get(amp。 基于 ARM 的以太網(wǎng)網(wǎng)關(guān) 設(shè)計與實現(xiàn) 21 3. Top_TCPRec()。 while(1) { printf(\r\n)。 在網(wǎng)關(guān)應(yīng)用程序中,同時需要轉(zhuǎn)發(fā)上行數(shù)據(jù)和下行數(shù)據(jù)。是緩沖區(qū),一共有 SEND_UP_BUFFER_CNT 個單元,每個單元有SEND_UP_BUFFER_SIZE 個字節(jié)數(shù)據(jù), SEND_UP_BUFFER_CNT 和SEND_UP_BUFFER_SIZE 由宏定義給出。這里借用了循環(huán)隊列的 思想。 首先建立服務(wù)器,通過 listen()偵聽客戶端的連接請求,此時在客戶端編程通過connect(),如果通信沒有錯誤的話便可以連接成功之后進行通信。由于本文要傳輸?shù)氖?CAN 總線采集的傳感數(shù)據(jù)以及以基于 ARM 的以太網(wǎng)網(wǎng)關(guān) 設(shè)計與實現(xiàn) 18 太網(wǎng)下發(fā)的控制數(shù)據(jù),要求傳輸過程中穩(wěn)定 可靠,所以本文中采用了面向連接的TCP/IP 傳輸協(xié)議。 嵌入式開發(fā)的流程可以概括為:在宿主機也就是上位機上對特定的處理器系統(tǒng)環(huán)境下開發(fā)的程序通過編譯器、鏈接器將開發(fā)的程序編譯生成目標代碼,然后將該目標代碼通過 JTAG 接口、串口或者 USB 接口等方式下載到目標板的 FLASH基于 ARM 的以太網(wǎng)網(wǎng)關(guān) 設(shè)計與實現(xiàn) 17 里 面,上電后如果沒有錯誤,程序便可以正常運行 [12]。 。另外, 由于以太網(wǎng)通信速度高,信號線頻率也相應(yīng)較高,在 發(fā)送和接收數(shù)據(jù)線上做了較為穩(wěn)妥的濾波處理,確保電路工作的 可靠性。它的自動協(xié)調(diào)功能將自動完成配置以最大限度地適合其線路帶寬。 3) SPI 協(xié)議模塊。 2) 用于配置該器件及其運行的控制邏輯和寄存器。 MCP2515 是一款獨立 CAN 控制器,可簡化需要與 CAN 總線連接的應(yīng)用。帶有一個內(nèi)置的 133MHz 并且支持 37 個 DMA通道的多層總線架構(gòu),兩組外部總線接口,分散的存儲單元(包括一個 64KB 的 SRAM,可以根據(jù)處理器和高速外設(shè)的要求,配置成一個緊湊結(jié)合內(nèi)存( Tightly Coupled Memory,TCM),以保持高的帶寬)。本文以 AT91SAM9G45作為核心處理器, CAN 總線控制器選用 MCP2515, CAN 收發(fā)器采用 PCA81C251芯片。因此,針對這種情況,有必要提出一種新的技術(shù)標準,就是基于以太網(wǎng)技術(shù),并且將這種技術(shù)擴展到工業(yè)中使之在將來能夠發(fā)展成為適用于工業(yè)現(xiàn)場生產(chǎn)環(huán)境的統(tǒng)一的技術(shù)標準。標準幀和擴展幀在這個段的格式也是相同的 , 如圖 所示: 圖 數(shù)據(jù)幀 CRC 段構(gòu)成 基于 ARM 的以太網(wǎng)網(wǎng)關(guān) 設(shè)計與實現(xiàn) 8 發(fā)送單元的 ACK,發(fā)送 2 個位的隱性位,而接收到正確消息的單元在 ACK 槽( ACK Slot)發(fā)送顯性位,通知發(fā)送單元正常接收結(jié)束,這個過程叫發(fā)送 ACK/返回 ACK。標準幀和擴展幀的控制段稍有不同,如圖 所示: 圖 數(shù)據(jù)幀控制段構(gòu)成 基于 ARM 的以太網(wǎng)網(wǎng)關(guān) 設(shè)計與實現(xiàn) 7 上圖中, r0 和 r1 為保 留位,必須全部以顯性電平發(fā)送,但是接收端可以接收顯性、隱性及任意組合的電平。從 ID28 到 ID18 被依次發(fā)送。檢查 幀的傳輸錯誤的段。表示數(shù)據(jù)幀開始的段。降低通信速度,可連接的單元數(shù)增加;提高通信速度,則可連接的單元數(shù)減少。強制結(jié)束發(fā)送的單元會不斷反復(fù)地重新發(fā)送此消息直到成功發(fā)送為止(錯誤恢復(fù)功能)。仲裁獲勝(被判定為優(yōu)先級最高)的單元可繼續(xù)發(fā)送消息,仲裁失利的單元則立刻停止發(fā)送而進行接收工作。它的出現(xiàn)為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數(shù)據(jù)通信提供了強有力的技術(shù)支持。 本文中 ,前兩章 概述了國內(nèi)外 CAN 總線和以太網(wǎng)的發(fā)展現(xiàn)狀 并 簡要的介紹了這兩種通信協(xié)議及其特點 ;第三章介紹了系統(tǒng)的硬件結(jié)構(gòu)及原理;在第四章中,著重闡明了系統(tǒng)的軟件設(shè)計方案;第五章展示了系統(tǒng)的測試過程及結(jié)果。 以太網(wǎng)的研究現(xiàn)狀 以太網(wǎng)作為一種應(yīng)用廣泛的局域網(wǎng)已經(jīng)成為了我們生活中必不可少的一部分,它以其自身的高可靠性、方便易用等優(yōu)點獲得了廣大用戶的青 睞。 CAN 總線作為現(xiàn)場總線的一種,由于采用了許多新技術(shù)及獨特的設(shè)計,與一般的通信總線相比, CAN 總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性 [1]。 但是它不能直接和工業(yè)設(shè)備相連進行通信。 以 SBC6845ARM 開發(fā)板 ( 搭載內(nèi)核為 ARM9的 AT91SAM9G45 處理器 )為硬件平臺,以嵌入式 Linux 為軟件平 臺, 利用 GEDIT 工具 進行 軟件設(shè)計, 采用 4 個線程分別處理上行數(shù)據(jù)和下行數(shù)據(jù)的存儲和轉(zhuǎn)發(fā), 對 CAN總線協(xié)議和 TCP/IP 協(xié)議進行轉(zhuǎn) 換, 實現(xiàn) 了 以太網(wǎng)與 CAN 總線的互聯(lián)。 本文設(shè)計并實 現(xiàn)了一種基于嵌入式平臺的 CAN 總線和以太網(wǎng)互聯(lián)的網(wǎng)關(guān),有效解決了底層現(xiàn)場總線與上層控制系統(tǒng)的互聯(lián)問題。 以太網(wǎng)現(xiàn)在已經(jīng)應(yīng)用很廣泛,技術(shù)方面也很成熟,然而在工業(yè)控制中,現(xiàn)場總線的種類和技術(shù)標準卻有很多,并且各種總線之間一般情況下無法相互兼容,每一個開發(fā)廠商都有自己的標準,這種情況導(dǎo)致了如果一個客戶選擇了某一種總線用在工業(yè)控制系統(tǒng)中就很難改變,很難再用另一種現(xiàn)場總線來代替,對設(shè)備及控制系統(tǒng)的升級不利,有可能會影響到生產(chǎn)效益 [3]。由于這些系統(tǒng)之間通信所用的數(shù)據(jù)類型及對可靠性的要求不盡相同,由多條總線構(gòu)成的情況很多,線束的數(shù)量也隨之增加。發(fā)送方通過使總線電平發(fā)生變化,將消息發(fā)送給接收方。因此在總線上增加單元時,連接在總線上的其它單元的軟硬件及應(yīng)用層都不需要改變。由此功能,當(dāng)總線上發(fā)生持續(xù)數(shù)據(jù)錯誤時,可將引起此故障 的單元從總線上隔離出去。其中 ISO11898 是針對通信速率為 125Kbps~1Mbps 的高速通信標準,而 ISO115192是針對通信速率為 125Kbps 以下的低速通信標準 [5]。 ( 3)控制段。 ( 7)幀結(jié)束?;?ID 從 ID28 到ID18,擴展 ID 由 ID17 到 ID0 表示。從最高位( MSB)開始輸出,標準幀和擴展幀在這個段的定義都是一樣的 , 如圖 所示: 圖 數(shù)據(jù)幀數(shù)據(jù)段構(gòu)成 CRC 段,該段用于檢查幀傳輸錯誤。 幀結(jié)束,這個段也比較簡單,標準幀和擴展幀在這個段格式一樣,由 7 個位的隱性位組成。 基于 ARM 的以太網(wǎng)網(wǎng)關(guān) 設(shè)計與實現(xiàn) 9 第 3章 系統(tǒng) 硬件 設(shè)計 本文所設(shè)計的嵌入式協(xié)議轉(zhuǎn)換網(wǎng) 關(guān), 實現(xiàn) 了 CAN 總線與以太網(wǎng)的互聯(lián),即 以太網(wǎng)能夠通過網(wǎng)關(guān)讀取 CAN 總線上的數(shù)據(jù),同時也可以向 CAN 總線發(fā)送命令以實現(xiàn)上位機對現(xiàn)場設(shè)備的監(jiān)控 , 網(wǎng)關(guān) 工作示意圖 如圖 所示。 核心模塊的外圍電路設(shè)計包括一下幾個部分: ●電源電路 :設(shè)計電路所需的 5V 和 電壓; ●串口電路:提供系統(tǒng)所必需的傳輸控制命令的通道; ●CAN 模塊: AT91SAM9G45 通過 SPI 控制 CAN 控制器; ●以太網(wǎng)模塊: AT91SAM9G45 通過控制 DM9161,進行網(wǎng)絡(luò)訪問。 AT91SAM9G45 電源管理控制器使用門控時鐘( clock gating)和電池備份組件使得在活動和就緒模式下把功耗降到最低。 CAN 模塊的功能是處理所有 CAN 總線上的報文接收和發(fā)送。器件上有一基于 ARM 的以太網(wǎng)網(wǎng)關(guān) 設(shè)計與實現(xiàn) 13 個多用途中斷引腳及各接收緩沖器的專用中斷引腳,用于指示有效報文是否被接收并載入接收緩沖器。 圖 CAN 控制器( MCP2515)電路原理圖 圖 CAN 收發(fā)器電路 以太網(wǎng)電路 DM9161 是一款完全集成的和 符合成本效益單芯片快速以太網(wǎng) PHY,提供數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)茸饔谩? 芯片 特點 : LQFP 封裝 : , IO 供電電壓 ,模擬部分 MII 和 RMII 連接方式(推薦使用 MII) ( AUTOmix) TCP/IP 硬加速 95%的廠家的 MCU 完全兼容,是 ATMEL 推薦使用的單口 PHY[10]。 。本系統(tǒng)所實現(xiàn)的網(wǎng)關(guān)是基于嵌入式 Linux 操作系統(tǒng),在 ARM9處理器 S3C2440 平臺下進行開發(fā)的。本文中使用的設(shè)置參數(shù)是: CAN 總線通信速率500Kbps、無過濾器、普通工作方式。 本文的嵌入式網(wǎng)關(guān)搭載的是客戶端,客戶端建立連接的流程 如 圖 所示 : 開始建立s o c k e t描述符設(shè)置對方 IP 地址c o n n e c t結(jié)束成功?YESNO 圖 TCP 客戶端建立連接流程圖 以太網(wǎng)發(fā)送和接收數(shù)據(jù) 由于底層的驅(qū)動程序已經(jīng)由開發(fā)板提供,要想實現(xiàn)以太網(wǎng)數(shù)據(jù)的收發(fā),在建立連接后, 直接讀寫 socket 設(shè)備文件即可。 從以太網(wǎng)上接收數(shù)據(jù)時,將數(shù)據(jù)送到指定的緩沖區(qū),然后調(diào)用 CAN 模塊的應(yīng)用程序?qū)?shù)據(jù)拆分打包成 CAN 數(shù)據(jù)幀,通過 SPI 接口發(fā)送到現(xiàn)場總線上。 //緩沖區(qū)非空條件判斷 pthread_cond_t notfull。如果 writepos 或 readpos 等于SEND_UP_BUFFER_CNT,則讓它們歸零,便實現(xiàn)了緩沖區(qū)的重復(fù)利用,即循環(huán)緩沖。 CAN_Read()。 int t = (int)(UpMessageBuf [ SEND_UP_BUFFER_CNT * SEND_UP_BUFFER_SIZE]8)+ UpMessageBuf[ SEND_UP_BUFFER_CNT * SEND_UP_BUFFER_SIZE + 1 ]。SendDownBuf)。 CAN_Write(DownMessageBuf,t)。 基于 ARM 的以太網(wǎng)網(wǎng)關(guān) 設(shè)計與實現(xiàn) 23 開始C A N 總線接收數(shù)據(jù)上行數(shù)據(jù)線程 下行數(shù)據(jù)線程取出幀頭、數(shù)據(jù)將幀頭及數(shù)據(jù)封裝通過以太網(wǎng)發(fā)送以太網(wǎng)接收數(shù)據(jù)計算數(shù)據(jù)長度分割數(shù)據(jù)為 C A N 幀通過 C A N 總線依次發(fā)送通訊異常?結(jié)束YESNO NO 圖 協(xié)議轉(zhuǎn)換流程圖 基于 ARM 的以太網(wǎng)網(wǎng)關(guān) 設(shè)計與實現(xiàn) 24 第 5章 系統(tǒng) 測試 為了測試網(wǎng)關(guān)系統(tǒng)的工作狀態(tài)及性能,制作了一個帶有 CAN 總線的下位機和一個帶有 TCP 服務(wù)器功能的上位機軟件。正好是 8 個字節(jié),為一幀 CAN 數(shù)據(jù)。本文所作的主要工作是在 AT91SAM9G45 處理器平臺上,嵌入式 Linux 環(huán)境下,通過硬件電路接口設(shè)計、數(shù)據(jù)傳輸途徑分析、數(shù)據(jù)經(jīng)網(wǎng)關(guān)的轉(zhuǎn)換模型分析、 CAN 模塊和以太網(wǎng)模塊的應(yīng)用程序設(shè)計、 CAN 數(shù)據(jù)幀協(xié)議設(shè)計,實現(xiàn)了處理器與現(xiàn)場總線的通信,并能夠?qū)?CAN 總線發(fā)送來的數(shù)據(jù)利用 socket 套接口編程通過以太網(wǎng)發(fā)送出去,并且能夠接收以太網(wǎng)發(fā)送來的數(shù)據(jù)。 感謝我的指導(dǎo)老師畢勝教授。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1