




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、CANopen協(xié)議詳情講解CANopen協(xié)議詳情講解CANopen協(xié)議詳情講解根據(jù)DS301的內容進行介紹1、CAN總線 CAN標準報文2、CANopen應用層協(xié)議CANopen 協(xié)議不針對某種特別的應用對象,具有較高的配置靈活性,高數(shù)據(jù)傳輸能力,較低的實現(xiàn)復雜度。同時,CANopen 完全基于CAN 標準報文格式,而無需擴展報文的支持,最多支持127個節(jié)點,并且協(xié)議開源。一個標準的CANopen 節(jié)點(下圖),在數(shù)據(jù)鏈路層之上,添加了應用層。該應用層一般由軟件實現(xiàn),和控制算法共同運行在實時處理單元內。 一個標準的CANopen 節(jié)點CANopen 應用層協(xié)議細化了CAN 總線協(xié)議中關于標識符
2、的定義。定義標準報文的11 比特標識符中高4 比特為功能碼,后7 比特為節(jié)點號,重命名為通訊對象標識符(COB-ID)。功能碼將所有的報文分為7個優(yōu)先級,按照優(yōu)先級從高至低依次為:網絡命令報文(NMT)同步報文(SYNC)緊急報文(EMERGENCY)時間戳(TIME)過程數(shù)據(jù)對象(PDO)服務數(shù)據(jù)對象(SDO)節(jié)點狀態(tài)報文(NMT Err Control)7 位的節(jié)點號則表明CANopen 網絡最多可支持127個節(jié)點共存(0 號節(jié)點為主站)。下表給出了各報文的COB-ID 范圍。NMT 命令 為最高優(yōu)先級報文,由CANopen 主站發(fā)出,用以更改從節(jié)點的運行狀態(tài)。SYNC 報文 定期由CAN
3、open 主站發(fā)出,所有的同步PDO 根據(jù)SYNC報文發(fā)送。EMERGENCY報文 由出現(xiàn)緊急狀態(tài)的從節(jié)點發(fā)出,任何具備緊急事件監(jiān)控與處理能力的節(jié)點會接收并處理緊急報文。TIME 報文 由CANopen 主站發(fā)出,用于同步所有從站的內部時鐘。PDO 分為4 對發(fā)送和接收PDO,每一個節(jié)點默認擁有4對發(fā)送PDO 和接收PDO,用于過程數(shù)據(jù)的傳遞。SDO 分為發(fā)送SDO 和接收SDO,用于讀寫對象字典。MT Error Control報文 由從節(jié)點發(fā)出,用以監(jiān)測從節(jié)點的運行狀態(tài)。狀態(tài)機CANopen 的每一個節(jié)點都維護了一個狀態(tài)機。該狀態(tài)機的狀態(tài)決定了該節(jié)點當前支持的通訊方式以及節(jié)點行為。初始化時
4、,節(jié)點將自動設置自身參數(shù)和CANopen 對象字典,發(fā)出節(jié)點啟動報文,并不接收任何網絡報文。初始化完成后,自動進入預運行狀態(tài)。在該狀態(tài),節(jié)點等待主站的網絡命令,接收主站的配置請求,因此可以接收和發(fā)送除了PDO 以外的所有報文。運行狀態(tài)為節(jié)點的正常工作狀態(tài),接收并發(fā)送所有通訊報文。停止狀態(tài)為一種臨時狀態(tài),只能接收主站的網絡命令,以恢復運行或者重新啟動。CANopen節(jié)點狀態(tài)轉換圖 CANopen節(jié)點狀態(tài)轉換條件3、Device ModelCommunication 提供通信對象和傳輸經過底層的數(shù)據(jù)的適當功能;Object Dictionary 對此設備上的應用程序對象,通信對象和狀態(tài)機的行為有影
5、響的所有數(shù)據(jù)項的集合。Application 由在處理環(huán)境方面的設備功能組成。設備應用在數(shù)據(jù)條目中的完整描述在對象字典中叫設備子文件(device profile)4、OD每個節(jié)點維護一個對象字典(Object Dictionary, OD)。該對象字典保存了節(jié)點信息、通訊參數(shù)和所有的過程數(shù)據(jù),是CANopen 節(jié)點的核心數(shù)據(jù)結構。上層應用程序也主要通過讀寫對象字典和CANopen 應用層進行交互。CANopen 對象字典為兩級數(shù)組結構,通過索引(16bits)和子索引(8bits)來編址。設備子文件中最重要的就是對象字典的描述, 對象字典在slave節(jié)點中一般是在設備初始化寫好的不會修改,而
6、在master節(jié)點中可以在運行過程中動態(tài)修改,不修改的OD一般存在ROM中,而修改的存在RAM中。由于它是由16bits的位索引,所以最多有65536個entries.根據(jù)節(jié)點所支持的通訊方式,每一個節(jié)點都必須實現(xiàn)1000h1FFFh 當中的一個必要子集,同時實現(xiàn)6000h 以上部分的數(shù)據(jù)區(qū)。數(shù)據(jù)區(qū)大小由節(jié)點的功能自行決定。1000h 以下部分所有的節(jié)點都不需實現(xiàn)。對象字典作為在CAN總線上連接application和通信的媒介,其允許來自application數(shù)據(jù)在CAN 網絡上進行交換。CANopen定義了可以進入對象字典的服務和通信對象。每一個入口通過索引和子索引來編址。在一個主索引里中
7、的子索引入口的類型和屬性可能會變化。5、PDO數(shù)據(jù)處理對象 (PDO) 特別適合快速的數(shù)據(jù)處理傳輸。通信模塊針對這些數(shù)據(jù)處理對象定義了一個PDO producer 和一個或多個PDO consumers。PDO的傳輸是由事件觸發(fā)的,這樣的事件可以是代表一個PDO變量的變化;可以是時間的過期或者是接收到一個特定的消息。過程數(shù)據(jù)直接在一個CAN消息中傳輸而不需要協(xié)議頭文件。一個PDO的長度是在0到8個字節(jié)之間。PDOs包含在其映射參數(shù)和通信參數(shù)中。TPDOs 和RPDOs的最大的數(shù)可以被定義為512。一個簡單的CANopen設備一般支持4個PDOs。實際當中,對一個具體的CANopen設備而言,其
8、PDOs的個數(shù)由應用層或設備profile來決定的。3.1PDO的結構映射參數(shù)在對象詞典中一個PDO由臨近的條目構成。所謂的映射參數(shù)定義了這些條目的連接。一個映射參數(shù)通過索引、分索引和位數(shù)定義數(shù)據(jù)源。例如:一個CAN消息最多有8個字節(jié)。這意味著當使用一個PDO時,在一個PDO中發(fā)送8個字典的對象條目。3.2PDO的結構通信參數(shù)為了傳輸一個PDO,通信參數(shù)定義了傳輸?shù)男再|和CAN標識符(CAN identifier)。PDO通信參數(shù)是在對象詞典的條目(RPDOs: index 0 x14000 x15FF,TPDOs: 0 x1800-0 x19FF)如果允許,映射參數(shù)在數(shù)據(jù)服務對象幫助下可以通
9、過CAN修改。3.2 COB-ID(CAN 標識符, 分索引 1)COB-ID作為身份證明,PDO的優(yōu)先權在總線入口(access)之前。對于每一個CAN消息來說只允許有一個發(fā)送者(生產者)。然而,對這個已存在的消息來說其允許多個接收者(消費者)。位30=0,著對這個PDO來說一個遠程發(fā)送請求(RTR)是被允許。3.3 PDO連接的例子設備A的輸入2和3被轉移到設備B的輸出1和3。兩個設備都支持完全映射。傳輸和接收都是PDOs使用的是相同的標識符0 x01C0。因此設備B自動的接收由設備A發(fā)送的PDO。設備B作為接收者根據(jù)映射原理分析數(shù)據(jù):它傳遞第一個字節(jié)到輸出1,傳遞第二個字節(jié)到輸出3。在另
10、一方面,發(fā)送設備A以同樣的字節(jié)存儲它的輸入2和3。6、SDO數(shù)據(jù)字典作為應用層和通信層的主要數(shù)據(jù)交換媒介。一個CANopen設備的所有數(shù)據(jù)的入口可以通過對象字典來管理。每一個對象字典的入口可以用索引和子索引來表示其地址。CANopen定義了所謂的SDO就是用于進入到這些入口。通信模塊基于客戶-服務器框架上的數(shù)據(jù)交換。讀或寫入口總是由客戶來初始化并且是由服務器服務。每一個CANopen設備必須有一個數(shù)據(jù)服務對象服務器來進入到它的對象字典。SDO 發(fā)送需要兩類不同的COB IDs (CAN identifier)。第一個COB ID 用于從客戶到服務器發(fā)送一個請求。服務器通過第二個COB ID發(fā)送
11、反饋信號到客戶。不同的 COB ID必須用于各自的方向以防止在CAN總線上的沖突。通信profile定義了COB IDs 可以用default SDP server。每一個CANopen設備可以處理127個SDO servers. CANopen 標準CiA DS-301 定義了不同的協(xié)議用于發(fā)送SDOs。讀OD 入口稱作為上傳,寫入口稱為下載。一個正在進行的發(fā)送可以在終止轉移服務幫助下由客戶或服務器來中斷。TPDO 傳輸?shù)氖遣蓸拥臄?shù)據(jù),當發(fā)生觸發(fā)TPDO 傳輸?shù)氖录r,各個TPDO 根據(jù)自己的傳輸類型決定是否進行采樣并傳輸。TPDO 的傳輸分為同步和異步兩大類,傳輸類型為同步的,需要在接收到
12、同步消息(SYNC) 時采樣數(shù)據(jù)。同步又分為周期和非周期兩種。傳輸類型0 為非周期傳輸,表示只有接收到同步消息并且規(guī)定的事件發(fā)生才進行采樣數(shù)據(jù)發(fā)送,具體是在收到同步對象后,判斷規(guī)定的事件是否發(fā)生,如果發(fā)生則進行采樣并觸發(fā)TPDO 的發(fā)送。傳輸類型1240 為周期傳輸,傳輸類型的值表示在接收到對應個數(shù)的同步消息后采樣并觸發(fā)TPDO 的發(fā)送,例如某個TPDO的傳輸類型為10,就表示此TPDO 每次接收到10 個同步消息后采樣并發(fā)送數(shù)據(jù)。傳輸類型252 為非周期傳輸,在接收到同步對象后進行采樣但不發(fā)送,在接收到請求該數(shù)據(jù)的遠程幀后發(fā)送。傳輸類型253-255 為異步傳輸,定義為此三種類型的TPDO在
13、接收到遠程幀或規(guī)定的事件發(fā)生后進行傳輸。7、CANopen中的協(xié)議CAN message in CANopen數(shù)據(jù)放在CAN幀中是按最小位在前的順序存放。NMT protocol設置節(jié)點進入操作設置節(jié)點進入停止設置節(jié)點進入預操作設置節(jié)點進入復位應用設置節(jié)點進入復位通信配置所有節(jié)點時,使用nodeID=00Node Guard Protocol主節(jié)點發(fā)送下列命令來詢問節(jié)點的狀態(tài)節(jié)點響應HeartBeat Protocol節(jié)點周期傳送它的狀態(tài)。Bootup Protocol節(jié)點進入預操作狀態(tài)時,它發(fā)送:SDO protocol 所有SDO幀都具有相同的CAN幀長度:8bytes數(shù)據(jù)和rtr=0.S
14、DO Download expedited protocol為了寫0 xd0d1到服務器節(jié)點對象字典,客戶機發(fā)送請求:SDO Upload expedited protocol為了讀0 xd0d1到服務器節(jié)點對象字典,客戶機發(fā)送請求:SDO abort protocolAbort code (hexa)0503 0000 Toggle bit not alternated0504 0000 SDO protocol timed out0504 0001 Client/server command specifier not valid or unknown0504 0002 Invalid b
15、lock size (block mode only)0504 0003 Invalid sequence number (block mode only)0504 0004 CRC error (block mode only)0504 0005 Out of memory0601 0000 Unsupported access to an object0601 0001 Attempt to read a write only object0601 0002 Attempt to write a read only object0602 0000 Object does not exist
16、 in the object dictionary0604 0041 Object cannot be mapped to the PDO0604 0042 The number and length of the objects to be mapped whould exeed PDO length0604 0043 General parameter incompatibility reason0604 0047 General internal incompatibility in the device0606 0000 Access failed due to a hardware
17、error0607 0010 Data type does not match, length of service parameter does not match0607 0012 Data type does not match, length of service parameter too hight0607 0013 Data type does not match, length of service parameter too low0609 0011 Sub-index does not exist.0609 0030 Value range of parameter exc
18、eeded (only for write access)0609 0031 Value of parameter written too hight0609 0032 Value of parameter written too low0609 0036 Maximum value is less than minimum value0800 0000 General error0800 0020 Data cannot be transferred or stored to the application0800 0021 Data cannot be transferred or sto
19、red to the application because of local control0800 0022 Data cannot be transferred or stored to the application because ofthe present device state0800 0023 Object dictionary dynamic generation fails or no object dictionary is present.8、CANopen中PDO與SDO配置How to configure a PDO Transmit ?例子:配置PDO 0 x1
20、800+n它的COBID是0 x387該PDO始終觸發(fā)傳輸它必須包含數(shù)據(jù):data X(2bytes),data Y(4bytes),按下面的順序-data X定義在索引0 x6000,子索引03-data Y定義在索引0 x2010,子索引211索引1800+n,子索引01:寫COBID(4bytes)2- 子索引02:寫傳輸字節(jié)t(1byte) t=1to 0 xF0:PDO 在每接到t個SYNC后被傳輸 t=FD :在接收到PDO請求(rtr=1)后傳輸 t=FF:根據(jù)事件進行傳輸,節(jié)點自發(fā)發(fā)送PDO3索引1A00+n:定義第n個數(shù)據(jù)的映射子索引0:寫嵌入到PDO中的數(shù)據(jù)個數(shù)(1byte
21、),本例是,寫入2子索引1:定義在哪里尋找嵌入的第一個數(shù)據(jù)和大小。(8bytes) 格式是:index (2 bytes) subindex (1 byte) size in bits (1 byte) 本例,寫入60000310子索引2:定義在哪里尋找嵌入的第二個數(shù)據(jù)和大小。(8bytes) 本例,寫入20102120配置節(jié)點5的PDO 1802在每3個SYNC傳輸,發(fā)送的SDO(s)應為605 23 02 18 01 00 00 87 03605 2F 02 18 02 03 00 00 00605 2F 02 1A 00 02 00 00 00605 23 02 1A 01 10 03
22、00 60605 23 02 1A 02 20 21 10 20什么是PDO Transmited PAGEXXX on request PAGEXXX ?當一個節(jié)點接受到帶有相同COBID的rtr,該PDO必須傳輸。例如:如果帶有COBID384的PDO被請求,它就必須被傳輸。How to configure a PDO Receive ?例子配置PDO 0 x1400+n它的COBID是0 x183該PDO始終觸發(fā)傳輸它必須包含數(shù)據(jù):data X(2bytes),data Y(4bytes),按下面的順序-data X定義在索引0 x6000,子索引03-data Y定義在索引0 x201
23、0,子索引211索引1400+n,子索引01:寫COBID(4bytes)2- 子索引02:寫傳輸字節(jié)t(1byte) t=1to 0 xF0:PDO 在每接到t個SYNC后被傳輸 t=FD :在接收到PDO請求(rtr=1)后傳輸 t=FF:根據(jù)事件進行傳輸,節(jié)點自發(fā)發(fā)送PDO3索引1600+n:定義映射子索引0:寫嵌入到PDO中的數(shù)據(jù)個數(shù)(1byte),本例是,寫入2子索引1:定義在哪里尋找嵌入的第一個數(shù)據(jù)和大小。(8bytes) 格式是:index (2 bytes) subindex (1 byte) size in bits (1 byte) 本例,寫入60000310子索引2:定義
24、在哪里尋找嵌入的第二個數(shù)據(jù)和大小。(8bytes) 本例,寫入20102120配置節(jié)點5的PDO 1802在每3個SYNC接收,發(fā)送的SDO(s)應為605 23 02 14 01 00 00 83 01605 2F 02 14 02 03 00 00 00605 2F 02 16 00 02 00 00 00605 23 02 16 01 10 03 00 60605 23 02 16 02 20 21 10 20How to configure a SDO client ?在CANopen網絡,每一個slave節(jié)點實現(xiàn)一個SDO服務器(index1200),來接收來自client節(jié)點的SD
25、O。缺省情況下,slave節(jié)點功能都是很好的配置的了。一般,slave節(jié)點不需要實現(xiàn)任何SDO client,因為它不需要發(fā)送SDO到其他的節(jié)點。Master節(jié)點為了發(fā)送SDO到slave節(jié)點,它應該有幾個SDOclients(每個slave一個)。項必須被配置在1280,1281,配置SDOclient定義在index 0 x1280+n來和節(jié)點nsl通信1 Index 1280 + n, subindex 01 : write the cobId transmit (4 bytes) : 600 + nsl2 subindex 02 : write the cobId receive (4
26、 bytes) : 580 + nsl3 subindex 03 : write the slave node id (1 byte) : nsl (Optional)How to configure a node to send the SYNC ?Index 1006, subindex 00 : write the period in microseconds. (4 bytes) :例子:to send a SYNC every 10(dec) ms (1000 micro), write the value : 0 x 2710The SDO should be if it is t
27、he node 9: 609 23 06 10 00 10 27 00 00To stop, write 0.To start, write 0 x40000080 at index 0 x1005, subindex 0What is the SYNC message ?How to configure a node to send its heartbeat ?To send its heartbeat every n milliseconds :1 Index 1017 subindex 00 : write n PAGEXXX (2 bytes) :例子 :to send a hear
28、tbeat every 100 ms, write the value : 0 x 64The SDO should be, if it is the node 9 : 609 2B 17 10 00 64 00 00 00To stop, write 0.9、CANopen 如何修改對象字典的理解SDO的基本結構如下:ClientServer/ServerClient下載/上傳(Download / upload)請求/應答(Request /response)分段/加速傳送(Segmented / expedited transfer)CAN幀數(shù)據(jù)字節(jié)長度用于后續(xù)每個分段的交替清零和置位的
29、觸發(fā)位(toggle bit)SDO中實現(xiàn)了5個請求/應答協(xié)議:啟動域下載(Initiate Domain Download);域分段下載(Download Domain Segment);啟動域上傳(Initiate Domain Upload);域分段上傳(Upload Domain Segment)和域傳送中止(Abort Domain Transfer)。 下載(Download)是指對對象字典進行寫操作,上傳(Upload)指對對象字典進行讀操作。 協(xié)議的SDO 命令字(SDO CAN報文的第一個字節(jié))語法和細節(jié)在下面部分說明:(表示不相關,應為0)。 讀取參數(shù)時,使用啟動域上傳(I
30、nitiate Domain Upload )協(xié)議 設置參數(shù)時,使用啟動域下載(Initiate Domain Download)協(xié)議n:表示報文數(shù)據(jù)中無意義數(shù)據(jù)的字節(jié)數(shù)【從(8n)字節(jié)到第7字節(jié)數(shù)據(jù)無意義】 (當e=1且s=1時n有效,否則n為0)。e:e=0時正常傳送,e=1時加速傳送。s:表示是否指明數(shù)據(jù)長度,0為數(shù)據(jù)長度未指明,1為數(shù)據(jù)長度指明。e=0,s=0:由CiA保留。e=0,s=1:數(shù)據(jù)字節(jié)為字節(jié)計數(shù)器,byte 4是數(shù)據(jù)低位部分(LSB),byte 7是數(shù)據(jù)高位部分(MSB)。e=1:數(shù)據(jù)字節(jié)為將要下載(download)的數(shù)據(jù)。Examples:讀取參數(shù) 發(fā)送SDO報文 接
31、收SDO報文 (*為最大字節(jié)數(shù)據(jù)) 注 :SDO報文發(fā)送時命令字均為0 x40如果數(shù)據(jù)為1個字節(jié),則接收命令字為0 x4F如果數(shù)據(jù)為2個字節(jié),則接收命令字為0 x4B如果數(shù)據(jù)為3個字節(jié),則接收命令字為0 x47如果數(shù)據(jù)為4個字節(jié),則接收命令字為0 x43 修改參數(shù)時發(fā)送SDO報文 (*為最大字節(jié)數(shù)據(jù))如果數(shù)據(jù)為1個字節(jié),則發(fā)送命令字為0 x2F如果數(shù)據(jù)為2個字節(jié),則發(fā)送命令字為0 x2B如果數(shù)據(jù)為3個字節(jié),則發(fā)送命令字為0 x27如果數(shù)據(jù)為4個字節(jié),則發(fā)送命令字為0 x23接收SDO報文 注 :SDO報文接收時命令字均為0 x60讀取參數(shù)舉例Send : 601 40 01 65 00 00
32、00 00 00 - 讀取6501h/00h地址的參數(shù)(節(jié)點地址01)(SingleTurn resolution:四個字節(jié))Receive: 581 43 01 65 00 A0 8C 00 00 - 6501h/00h地址的參數(shù)值為0 x00008CA0Send : 601 40 00 20 00 00 00 00 00 - 讀取2000h/00h地址的參數(shù)(Mode:一個字節(jié))Receive: 581 4F 00 20 00 00 00 00 00 - 2000h/00h地址的參數(shù)值為0 x00寫入?yún)?shù)舉例Send : 601 23 01 65 00 A0 8C 00 00 - 將650
33、1h/00h地址的參數(shù)值設為0 x00008CA0(SingleTurn resolution:四個字節(jié))Receive: 581 60 01 65 00 00 00 00 00 - 6501h/00h地址的參數(shù)值修改成功Send : 601 2F 00 20 00 00 00 00 00 - 將2000h/00h地址的參數(shù)值設為0 x00(Mode:一個字節(jié))Receive: 581 60 00 20 00 00 00 00 00 - 2000h/00h地址的參數(shù)值修改成功 注:參數(shù)修改后并沒有直接保存,必須在Object 1010h:Save parameters(保存參數(shù))內進行“save”寫入才能保存所修改參數(shù)。在SubIndex 1寫入命令“save”(0 x65766173h),參數(shù)將會存入存儲器。舉例:Send: 601 23 10 10 01 73 61 76 65 - 將0 x65766173h寫入1010h/01h地址Receive: 581 60 10 10 01 00 00 00 00 - 1010h/01h地址的參數(shù)值修改成功 注:恢復默認參數(shù)時,也必須對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省德州市齊河縣2024-2025學年八年級上學期期末生物學試題(含答案)
- 客戶溝通與反饋記錄
- 小王子遇見世界的觀后感
- 高中化學實驗設計與探究:化學反應原理教案
- 《初高中英語語法比較與辨析教案》
- 不動產交易買賣協(xié)議書
- 中學生歷史事件故事讀后感
- 美容師儀器知識培訓課件
- 血液++課件-2024-2025學年北師大版生物七年級下冊
- 紅色故事鐵道游擊隊的愛國主義教育解讀
- 《當代廣播電視概論》(廣播電視發(fā)明與技術基礎)課件
- 核心能力模型庫(-勝任力模型-)
- 高中地理 紐約的發(fā)展 紐約的輻射功能 城市的輻射功能 作業(yè)設計
- 5.3.2.2函數(shù)的最大(小)值 課件(共20張PPT)
- TSG-R0005-2022《移動式壓力容器安全技術監(jiān)察規(guī)程》(2022版)
- 2020 ACLS-PC-SA課前自我測試試題及答案
- 上市公司組織架構策略
- 上海交通大學有機化學課件第二章烷烴
- DB34∕T 3968-2021 橋梁健康監(jiān)測系統(tǒng)運營維護與管理規(guī)范
- 加氣混凝土砌塊砌筑規(guī)范標準[詳]
- 定語從句漢譯英
評論
0/150
提交評論