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

正文內(nèi)容

can總線的淺析canopen協(xié)議(已改無錯字)

2023-06-14 03:50:04 本頁面
  

【正文】 在收到應(yīng)答后判斷該請求是否還有后續(xù)請求,無則釋放此SDO線程。如果在這個過程中,SDO server 和SDO client所在節(jié)點有收到其他節(jié)點的SDO請求或需要通過SDO請求其它節(jié)點,則新建SDO線程來實現(xiàn),跟上面的步驟一樣,這樣就可以實現(xiàn)多個SDO server和SDO client服務(wù)都得到實現(xiàn)而互不干擾,相當于雙向多線鐵路,可比單線爽多了。怎樣利用好單片機上的存儲器資源來實現(xiàn)OD的存儲與訪問我們知道OD(對象字典)是CANopen的核心,所有功能都是圍繞它開展的,是協(xié)議棧的數(shù)據(jù)中心,良好的OD實現(xiàn)是協(xié)議棧高效穩(wěn)定運行的基礎(chǔ),而OD的實現(xiàn)最基本的一點就是怎么去保存它。因為OD的內(nèi)容比較雜,讀寫屬性上,有只讀數(shù)據(jù)、只寫數(shù)據(jù)、可讀寫數(shù)據(jù);保存要求上有非易失和掉電丟失兩種類型;數(shù)據(jù)類型上有字符型、整型、長整型等等;存儲格式上有8位、16位、32位等。其它的不管,本文現(xiàn)只討論怎么利用單片機的資源去盡量滿足OD的存儲需求。有人會以為這還要討論么?只讀的就放在只讀存儲器中,可寫的就放在RAM中,需要掉電保存的就放在非易失可讀寫存儲器中。話是這么說,但實際上問題很多,羅列如下:1. 對協(xié)議棧只讀并不表示對應(yīng)用程序只讀。2. 可讀寫而又掉電保存的數(shù)據(jù)不能放在RAM里。3. 頻繁讀寫的數(shù)據(jù)不能放在非易失存儲器中,因為非易失存儲器往往速度慢,有寫次數(shù)限制。4. 單片機資源有限,存取方式和讀寫速度有限值,因此得合理利用。既然有這些問題,我們先對OD的數(shù)據(jù)進行分析分類:1. 系統(tǒng)只讀參數(shù)。自節(jié)點出廠就無需更改,例如,節(jié)點硬件序列號、軟硬件版本等。2. 過程數(shù)據(jù)對象。頻繁讀寫,掉電無需保存。例如,采集的模擬量、待輸出的開關(guān)量。3. 系統(tǒng)配置參數(shù)。可讀寫,偶爾配置,大部分時間只讀。基本上所有的OD對象都可以歸到這三類中去。下面再以AVR單片機為例說說單片機的幾類存儲資源以及其特點: 類型 運行中讀寫屬性 訪問速度 容量 特點 FLASH 程序存儲器 只讀 一般 較大 操作方便但只能放程序和初始化只讀數(shù)據(jù),掉電不丟失 SRAM 數(shù)據(jù)存儲器 讀寫 最快 小 操作方便,速度快,掉電數(shù)據(jù)丟失 EEPROM 數(shù)據(jù)存儲器 讀寫 讀一般,寫很慢 小 操作復雜,寫速度極慢 看到上面這個表,你會馬上把OD的三類數(shù)據(jù)存放位置定下來吧,系統(tǒng)只讀參數(shù)放在FLASH中;過程數(shù)據(jù)對象放在SRAM中;系統(tǒng)配置參數(shù)放在EEPROM中。實際上確實該如此安排,但是所有問題的解決了?NO,NO,NO!OD中的數(shù)據(jù)對象是怎么安排進存儲器的?系統(tǒng)啟動怎么初始化?怎么去訪問?下面提供一種方案:出廠設(shè)置隨程序一起寫入FLASH,然后系統(tǒng)重器開始運行,在軟件初始化過程中,程序?qū)⒊鰪S默認的整個OD對象從FLASH 載入到RAM中去,不論是OD的那種分類的數(shù)據(jù);之后如果判斷是第一次運行,將用RAM中屬于的統(tǒng)配置參數(shù)的那一類數(shù)據(jù)去初始化EEPROM,否則用EEPROM中的系統(tǒng)配置參數(shù)去重新覆蓋對應(yīng)的RAM映像。好了初始化完成,開始運行,因為所有OD數(shù)據(jù)都load到RAM中,因此OD對外可以提供統(tǒng)一快速的數(shù)據(jù)服務(wù)接口,外部的讀操作就是直接讀RAM,寫則是先寫RAM映像,然后再判斷如果是OD的系統(tǒng)配置參數(shù)那一類則同時更新EEPROM。最后要注意一點就是OD的對象屬性等信息一定要放在FLASH中,否則將是一個極大的RAM開銷。上面方案優(yōu)點是在滿足OD需求的前提下能夠提供統(tǒng)一快速的OD訪問接口;能夠及時存儲非易失性數(shù)據(jù);并能在軟件上實現(xiàn)恢復出廠設(shè)置的操作而不增加額外的出廠設(shè)置備份空間(在EEPROM中置一標志就行了,自己去想)。明顯的優(yōu)點也意味著明顯的缺點,就是占用較多RAM空間,只讀數(shù)據(jù)和非易失性數(shù)據(jù)都要映射到RAM中,浪費了一部分RAM,這將使得本來就緊張的RAM資源更加緊張,好在一般節(jié)點上的OD內(nèi)容一般不多,而且現(xiàn)在RAM非常便宜。上面的方案同樣適用于其他單片機,基本上現(xiàn)在的單片機上都有FLASH和RAM,而即使有的單片機沒有EEPROM,但是本身FLASH區(qū)是可以運行中在線寫入的,也可以當EEPROM用(但此時最好就不要來一個寫一個了,因為FLASH是頁擦除的,比較耗時間,因此建議做成批量寫入方式,OD的0x1010和0x1011對象有涉及),實在不行還可以外擴。對象字典0x1005和0x1006的理解SYNC不一定由主站產(chǎn)生,因此,產(chǎn)生SYNC的節(jié)點,0x1005對象的值一般是0x40000080,第30位為1表示本節(jié)點產(chǎn)生SYNC,而本節(jié)點的0x1006對象就是產(chǎn)生同步周期值了。而接收SYNC的節(jié)點0x1005對象值一般是0x80,第30位是0表示本身不產(chǎn)生SYNC,而接收COBID為0x80的報文作為同步幀,該節(jié)點0x1006一般置0,沒什么用處了. 在CANopen網(wǎng)絡(luò)中通過LSS服務(wù)設(shè)置節(jié)點地址和網(wǎng)絡(luò)波特率CANopen專有個子協(xié)議用來描述怎樣去通過網(wǎng)絡(luò)設(shè)置節(jié)點地址和波特率,就是CiA DSP305,大伙都叫LSS協(xié)議,是Layer Setting Services的縮寫,不太好翻譯,也許可以翻譯成底層設(shè)置服務(wù)協(xié)議吧。屬于主從式服務(wù),類似于NMT的方式,占用2021(for master)和2020(for slave)兩個標識符。CANopen網(wǎng)絡(luò)中同時只能有一個節(jié)點能提供LSS Master服務(wù),并且該節(jié)點同時也必須是NMT Master。網(wǎng)絡(luò)上的其他節(jié)點都提供LSS Slave服務(wù)。假設(shè)網(wǎng)絡(luò)上除了主節(jié)點之外,其他節(jié)點都是無地址的,那么它根據(jù)什么去設(shè)置各節(jié)點地址呢?答案是LSS地址,這跟節(jié)點的地址可不同,它理論上是全球唯一的,那么這個地址到底是什么呢?答案是對象字典1018H的內(nèi)容,包括vendorid(制造商ID)、productcode(產(chǎn)品碼)、revisionnumber(修訂碼)和serialnumber(序列號),這幾個加起來就全球唯一了吧。一般要求LSS Master節(jié)點要預(yù)先知道網(wǎng)絡(luò)上的各節(jié)點的LSS地址。設(shè)置某個節(jié)點地址的步驟如下:1. 通過LSS地址去將希望設(shè)置ID的節(jié)點切換到配置狀態(tài)(相當
點擊復制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1