本章節(jié)匯總了UWB650模塊所有已知的配置與操作指令,旨在為軟件開發(fā)工程師提供一個全面、快速的參考。UWB650模塊通過配置命令來修改運行時的一些參數(shù)。

定義
- <CR> 回車字符,即0x0D。
- <LF> 換行字符,即0x0A。
- <…> 參數(shù)名稱。尖括號不會出現(xiàn)在命令中。
配置命令格式
用戶從串口輸入數(shù)據(jù)時,模塊會檢測該數(shù)據(jù)是否為配置命令并做相應(yīng)的處理與響應(yīng)。配置命令的格式都是固定的:以UWBRFAT開頭,以<CR><LF>結(jié)尾。命令的響應(yīng)和結(jié)果代碼總是<CR>和<LF>開始和結(jié)束。
微信截圖_20250904090221.jpg)
在整個文檔中說明配置命令以及響應(yīng)時會故意省略掉<CR>和<LF>。用戶在使用中如不需要配置參數(shù),應(yīng)盡量避免輸入開頭為UWBRFAT,末尾為<CR>和<LF>的數(shù)據(jù)包。
串口的接收處理機制
UWB650模塊以超時檢測的形式來判斷串口接收到的字節(jié)數(shù)量。當模塊接收到第一個字節(jié)時,會開啟一個約5ms的定時器,當繼續(xù)接收到其他字節(jié)時,定時器會重新計時,直到接收緩沖區(qū)滿或者定時器觸發(fā)超時時會停止接收并開始處理數(shù)據(jù)。
1) 檢測模塊是否正常工作
|
命令 |
響應(yīng) |
|
UWBRFAT |
OK |
2) 獲取模塊程序版本
|
命令 |
響應(yīng) |
|
UWBRFAT+VERSION? |
V1.2 |
注:由于模塊后續(xù)存在更新程序的可能,該文檔的響應(yīng)內(nèi)容僅供參考。
3) 將模塊的所有參數(shù)恢復(fù)為默認值
|
命令 |
響應(yīng) |
|
UWBRFAT+DEFAULT |
OK |
注:該命令會讓模塊重啟,且模塊會響應(yīng)OK后再執(zhí)行重啟操作。
模塊啟動完畢后,串口會輸出以下字符串:
Finished Startup
4) 重啟模塊
|
命令 |
響應(yīng) |
|
UWBRFAT+RESET |
OK |
注:該命令會讓模塊重啟,且模塊會響應(yīng)OK后再執(zhí)行重啟操作。
模塊啟動完畢后,串口會輸出以下字符串:
Finished Startup
5) 將可配置參數(shù)保存在內(nèi)部Flash中
|
命令 |
響應(yīng) |
|
UWBRFAT+FLASH |
OK |
注:文檔后續(xù)的配置命令說明中,帶*符號的命令說明其相關(guān)參數(shù)都可以通過該命令保存到Flash,模塊后續(xù)重新啟動會直接應(yīng)用這些參數(shù)。
6) 配置模塊的串口波特率
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+BAUDRATE? |
+BAUDRATE=<rate> |
|
設(shè)置 |
*UWBRFAT+BAUDRATE=<rate> |
OK |
|
說明 |
<rate>:整數(shù)類型。每個值代表相應(yīng)的串口波特率: 0:230400bps 1:115200bps(默認值) 2:57600bps 3.38400bps 4.19200bps 5.9600bps 注:模塊串口的其他配置固定為數(shù)據(jù)位8位,停止位1位,無奇偶校驗位,無流控制。 |
|
|
示例 |
查詢模塊的當前的串口波特率: 發(fā)送:UWBRFAT+BAUDRATE? 響應(yīng):+BAUDRATE=0 設(shè)置模塊的串口波特率為9600: 發(fā)送:UWBRFAT+BAUDRATE=5 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+BAUDRATE=6 響應(yīng):ERROR |
|
7) 配置UWB芯片的空中數(shù)據(jù)傳輸速率
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+DATARATE? |
+DATARATE=<rate> |
|
設(shè)置 |
*UWBRFAT+DATARATE=<rate> |
OK |
|
說明 |
<rate>:整數(shù)類型,不同的值代表不同的空中數(shù)據(jù)傳輸速率。 0:850Kbps 1:6.8Mbps(默認值) |
|
|
示例 |
查詢空中數(shù)據(jù)傳輸速率: 發(fā)送:UWBRFAT+DATARATE? 響應(yīng):+DATARATE=1 設(shè)置空中數(shù)據(jù)傳輸速率: 發(fā)送:UWBRFAT+DATARATE=0 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+DATARATE=2 響應(yīng):ERROR |
|
8) 配置UWB芯片的PAN ID和Address
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+DEVICEID? |
+DEVICEID=<id>,<addr> |
|
設(shè)置 |
*UWBRFAT+DEVICEID=<id>,<addr> |
OK |
|
說明 |
<id>:16進制4字節(jié)字符類型,范圍:0000-FFFE(默認值:0000) <addr>:16進制4字節(jié)字符類型,范圍:0000-FFFE(默認值:0000) |
|
|
示例 |
查詢PAN ID和Address: 發(fā)送:UWBRFAT+DEVICEID? 響應(yīng):+DEVICEID=1234,5678 設(shè)置PAN ID和Address: 發(fā)送:UWBRFAT+DEVICEID=ABCD,1234 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+DEVICEID=FFFF,FFFF 響應(yīng):ERROR |
|
9) 配置模塊的發(fā)射功率
|
命令 |
響應(yīng) |
|||||||||||||||||||||||||
|
查詢 |
UWBRFAT+POWER? |
+POWER=<gear> |
||||||||||||||||||||||||
|
設(shè)置 |
*UWBRFAT+POWER=<gear> |
OK |
||||||||||||||||||||||||
|
說明 |
<gear>:整數(shù)類型。范圍:0-10,不同的值代表不同的功率檔位:
|
|||||||||||||||||||||||||
|
示例 |
查詢模塊的發(fā)射功率: 發(fā)送:UWBRFAT+POWER? 響應(yīng):+POWER=0 設(shè)置發(fā)射功率: 發(fā)送:UWBRFAT+POWER=10 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+POWER=11 響應(yīng):ERROR |
|||||||||||||||||||||||||
10) 配置UWB芯片的前導碼參數(shù)
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+PREAMBLECODE? |
+PREAMBLECODE=<code> |
|
設(shè)置 |
*UWBRFAT+PREAMBLECODE=<code> |
OK |
|
說明 |
<code>:整數(shù)類型。范圍:9-24(默認值:9),不同前導碼參數(shù)的UWB650模塊無法通訊。 |
|
|
示例 |
查詢前導碼參數(shù): 發(fā)送:UWBRFAT+ PREAMBLECODE? 響應(yīng):+PREAMBLECODE=9 設(shè)置前導碼參數(shù): 發(fā)送:UWBRFAT+PREAMBLECODE=12 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+PREAMBLECODE=3 響應(yīng):ERROR |
|
11) 配置CCA(清晰信道評估)功能
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+CCAENABLE? |
+CCAENABLE=<enable> |
|
設(shè)置 |
*UWBRFAT+CCAENABLE=<enable> |
OK |
|
說明 |
<enable>:整數(shù)類型。 0:關(guān)閉CCA功能(默認值) 1:開啟CCA功能 該功能僅在數(shù)傳模式時使用。開啟CCA功能后,如果模塊發(fā)送普通數(shù)據(jù)之前檢測到 空中有數(shù)據(jù)正在傳輸,則會停止發(fā)送數(shù)據(jù),串口會回復(fù)以下內(nèi)容: CCA FAILURE |
|
|
示例 |
查詢CCA功能是否開啟: 發(fā)送:UWBRFAT+ CCAENABLE? 響應(yīng):+CCAENABLE=0 開啟CCA功能: 發(fā)送:UWBRFAT+CCAENABLE=1 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+CCAENABLE=2 響應(yīng):ERROR |
|
12) 配置ACK(自動響應(yīng)請求)功能
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+ACKENABLE? |
+ACKENABLE=<enable> |
|
設(shè)置 |
*UWBRFAT+ACKENABLE=<enable> |
OK |
|
說明 |
<enable>:整數(shù)類型。 0:關(guān)閉ACK發(fā)送請求(默認值) 1:開啟ACK發(fā)送請求 開啟ACK發(fā)送請求后,模塊在數(shù)傳功能下發(fā)送的數(shù)據(jù)都將附帶ACK發(fā)送請求。如果 沒有收到ACK回復(fù),則串口會回復(fù)以下內(nèi)容: ACK WAIT TIMEOUT 如果收到了ACK回復(fù),則串口會回復(fù)以下內(nèi)容: ACK DETECTED |
|
|
示例 |
查詢ACK功能是否開啟: 發(fā)送:UWBRFAT+ACKENABLE? 響應(yīng):+ACKENABLE=0 開啟ACK功能: 發(fā)送:UWBRFAT+ACKENABLE=1 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+ACKENABLE=2 響應(yīng):ERROR |
|
13) 配置模塊的AES-128密鑰
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+SECURITY? |
+SECURITY=<enable>,<key> |
|
設(shè)置 |
*UWBRFAT+SECURITY=<enable>,<key> |
OK |
|
說明 |
<enable>:整數(shù)類型。 0:關(guān)閉AES加密(默認值) 1:開啟AES加密 開啟AES加密后,模塊在數(shù)傳功能下發(fā)送的Frame Payload內(nèi)容將會被加密,以獲得更加可靠的數(shù)據(jù)傳輸。 <key>:16進制字符類型。長度為32個字節(jié)。 默認值:000102030405060708090A0B0C0D0E0F |
|
|
示例 |
查詢AES加密功能的狀態(tài)與密鑰: 發(fā)送:UWBRFAT+SECURITY? 響應(yīng):+SECURITY=0,00112233445566778899AABBCCDDEEFF 開啟AES加密功能,并設(shè)置密鑰: 發(fā)送:UWBRFAT+SECURITY=1,112233445566778899AABBCCDDEEFF00 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+SECURITY=112233445566778899AABBCCDDEEFF00 響應(yīng):ERROR |
|
14) 設(shè)置數(shù)傳功能的數(shù)據(jù)發(fā)送目標地址
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+TXTARGET? |
+TXTARGET=<address> |
|
設(shè)置 |
*UWBRFAT+TXTARGET=<address> |
OK |
|
說明 |
<address>:16進制4字節(jié)字符類型。范圍:0000-FFFF(默認值:0000) 當設(shè)置為FFFF時,模塊數(shù)傳功能發(fā)送的數(shù)據(jù)將會視為廣播。 |
|
|
示例 |
查詢當前的發(fā)送目標: 發(fā)送:UWBRFAT+TXTARGET? 響應(yīng):+TXTARGET=AB12 修改當前的發(fā)送目標: 發(fā)送:UWBRFAT+TXTARGET=1234 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+TXTARGET=123 響應(yīng):ERROR |
|
15) 設(shè)置模塊的Mesh自組網(wǎng)功能
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+MESHENABLE? |
+MESHENABLE=<type> |
|
設(shè)置 |
*UWBRFAT+MESHENABLE=<type> |
OK |
|
說明 |
<type>:整數(shù)類型。 0:關(guān)閉Mesh功能(默認值) 1:啟用Mesh功能,模塊僅作為中繼 2:啟用Mesh功能,模塊僅作為節(jié)點 3:啟用Mesh功能,模塊可同時作為中繼和節(jié)點 注:Mesh模式下,模塊單包最大可以發(fā)送1004個字節(jié)的數(shù)據(jù),且啟用Mesh功能的 模塊無法與未開啟Mesh功能的模塊做普通數(shù)據(jù)的收發(fā)(測距/定位功能除外)。 |
|
|
示例 |
查詢Mesh功能狀態(tài): 發(fā)送:UWBRFAT+MESHENABLE? 響應(yīng):+MESHENABLE=0 開啟Mesh功能,模塊作為節(jié)點 發(fā)送:UWBRFAT+MESHENABLE=2 響應(yīng):OK 錯誤示例:UWBRFAT+MESHENABLE=4 響應(yīng):ERROR |
|
16)設(shè)置模塊接收到數(shù)據(jù)時,顯示來源地址信息
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+RXSHOWSRC? |
+RXSHOWSRC=<enable> |
|
設(shè)置 |
*UWBRFAT+RXSHOWSRC=<enable> |
OK |
|
說明 |
<enable>:整數(shù)類型。 0:不顯示來源地址信息 1:顯示來源地址信息(默認值) 注:開啟后,模塊接收到普通數(shù)據(jù)時,會顯示來源地址以及信號強度。 例如接收到來自其他模塊(地址1234)的數(shù)據(jù)(123456789),信號強度為-45.60dBm: SrcAddr:1234;Rssi:-45.60dBm;Data:123456789 如果模塊啟用了Mesh功能并設(shè)置為節(jié)點,則將會收到以下格式的數(shù)據(jù): Mesh SrcAddr:1234;Data:123456789 |
|
|
示例 |
查詢是否顯示來源地址信息: 發(fā)送:UWBRFAT+RXSHOWSRC? 響應(yīng):+RXSHOWSRC=0 開啟顯示來源地址信息: 發(fā)送:UWBRFAT+RXSHOWSRC=1 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+RXSHOWSRC=2 響應(yīng):ERROR |
|
17) 設(shè)置模塊板上LED燈的狀態(tài):
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+LEDSTATUS? |
+LEDSTATUS=<enable> |
|
設(shè)置 |
*UWBRFAT+LEDSTATUS=<enable> |
OK |
|
說明 |
<enable>:整數(shù)類型。 0:關(guān)閉LED燈狀態(tài)指示 1:開啟LED燈狀態(tài)指示(默認值) 注:工作狀態(tài)時,紅燈閃爍代表模塊正在發(fā)送數(shù)據(jù);藍燈閃爍代表模塊處于接收狀態(tài), 但不代表接收到數(shù)據(jù)。 |
|
|
示例 |
查詢是否開啟了LED燈狀態(tài)指示: 發(fā)送:UWBRFAT+LEDSTATUS? 響應(yīng):+LEDSTATUS=1 關(guān)閉LED燈狀態(tài)指示: 發(fā)送:UWBRFAT+LEDSTATUS=0 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+LEDSTATUS=2 響應(yīng):ERROR |
|
18) 設(shè)置模塊的接收狀態(tài)
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+RXENABLE? |
+RXENABLE=<enable> |
|
設(shè)置 |
*UWBRFAT+RXENABLE=<enable> |
OK |
|
說明 |
<enable>:整數(shù)類型。 0:關(guān)閉接收狀態(tài) 1:開啟接收狀態(tài)(默認值) 關(guān)閉接收后,模塊將進入IDLE狀態(tài),數(shù)傳模式下仍能發(fā)送數(shù)據(jù),但無法接收數(shù)據(jù), 這種狀態(tài)下模塊的功耗會有所降低。 |
|
|
示例 |
查詢是否開啟接收狀態(tài): 發(fā)送:UWBRFAT+RXENABLE? 響應(yīng):+RXENABLE=1 關(guān)閉接收: 發(fā)送:UWBRFAT+RXENABLE=0 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+RXENABLE=2 響應(yīng):ERROR |
|
19) 設(shè)置模塊的SNIFF(偵聽接收)狀態(tài)
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+SNIFFEN? |
+SNIFFEN=<enable> |
|
設(shè)置 |
*UWBRFAT+SNIFFEN=<enable> |
OK |
|
說明 |
<enable>:整數(shù)類型。 0:關(guān)閉偵聽接收(默認值) 1:開啟偵聽接收 用戶設(shè)置開啟偵聽接收后,模塊開啟測距/定位功能后會暫時關(guān)閉偵聽接收。 直到功能關(guān)閉后再重新開啟。 |
|
|
示例 |
查詢是否開啟偵聽接收: 發(fā)送:UWBRFAT+SNIFFEN? 響應(yīng):+SNIFFEN=0 關(guān)閉接收: 發(fā)送:UWBRFAT+SNIFFEN=1 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+SNIFFEN=2 響應(yīng):ERROR |
|
20) 設(shè)置模塊的天線延遲
|
命令 |
響應(yīng) |
|||||||||||
|
查詢 |
UWBRFAT+ANTDELAY? |
+ANTDELAY=<delay> |
||||||||||
|
設(shè)置 |
*UWBRFAT+ANTDELAY=<delay> |
OK |
||||||||||
|
說明 |
<delay>:整數(shù)類型。范圍:0-65535。默認值:16400。模塊的天線延遲參數(shù)。 天線延遲參數(shù)會直接影響測距功能和定位功能中測距結(jié)果的誤差。將天線延遲校準, 可以使得測距結(jié)果的值盡可能接近實際距離。 用戶使用我司的UWB天線時,可以根據(jù)不同型號使用對應(yīng)的天線延遲參數(shù):
各型號天線的具體參數(shù)可向我司咨詢。 如不使用我司的UWB天線,則需要自己手動校準天線延遲。關(guān)于如何校準天線延遲,請查看《UWB650模塊如何校準天線延遲.pdf》。 |
|||||||||||
|
示例 |
查詢天線延遲參數(shù): 發(fā)送:UWBRFAT+ANTDELAY? 響應(yīng):+ANTDELAY=16400 設(shè)置天線延遲參數(shù): 發(fā)送:UWBRFAT+ANTDELAY=12345 響應(yīng):OK 錯誤示例: 發(fā)送:UWBRFAT+LEDSTATUS=123456 響應(yīng):ERROR |
|||||||||||
21) 模塊的測距功能
|
命令 |
響應(yīng) |
|
|
設(shè)置 |
UWBRFAT+RANGING=<number>, <addr> |
+RANGING=(<distance>),(<rssi>) |
|
說明 |
<number>:整數(shù)類型,需要測距的目標從機的數(shù)量 <addr>:16進制4字節(jié)類型。模塊作為主機進行測距的目標地址,范圍:0000-FFFE。 可以輸入多個地址,地址的數(shù)量必須與<number>參數(shù)的值相同,多個地址用逗號分開。 模塊會按照命令中的地址順序向目標模塊進行測距流程,測距完畢后同一輸出測距信 息。 <distance>:浮點數(shù)字符串類型,測距完成后輸出的距離信息。最多可輸出小數(shù)點后2 位。 如果測距失敗,那么該值必定為-1。 <rssi>:浮點數(shù)字符串類型,測距完成后輸出的另一端的信號強度信息,最多可輸出 小數(shù)點后2位。 注:另一端收到主機的測距信號后,測距完畢后也會輸出測距信息。 |
|
|
示例 |
獲取與地址為0001的模塊的距離: 發(fā)送:UWBRFAT+RANGING=1,0001 響應(yīng):+RANGING=(12.34),(-56.78) 地址0001的模塊輸出的測距信息: 同時獲取與地址為0002和0003的模塊的距離: 發(fā)送:UWBRFAT+RANGING=2,0002,0003 響應(yīng):+RANGING=(34.12,26.17),(-53.23,-49.15) 獲取與地址0004的模塊的距離,但是測距失?。?/p> 發(fā)送:UWBRFAT+RANGING=1,0004 響應(yīng):+RANGING=(-1),(0.00) 錯誤示例: 發(fā)送:UWBRFAT+RANGING=123,456 響應(yīng):ERROR |
|
22) 模塊的定位功能
|
命令 |
響應(yīng) |
|
|
設(shè)置 |
UWBRFAT+LOCATION=<addr> |
+LOCATION=(<x>,<y>,<z>),(<distance>),(<rssi>) |
|
說明 |
<addr>:16進制4字節(jié)類型。模塊作為Tag進行定位的目標基站地址, 范圍:0000-FFFE。至少需要輸入3個地址,最多可輸入8個(用逗號分開)。 模塊會按照命令中的地址向目標模塊發(fā)起定位流程,流程結(jié)束后輸出定位結(jié)果。 <x>:定位完成后計算出的自身的當前x坐標值,最多可輸出小數(shù)點后2位, 單位為m。 <y>:定位完成后計算出的自身的當前y坐標值,最多可輸出小數(shù)點后2位, 單位為m。 <z>:定位完成后計算出的自身的當前z坐標值,最多可輸出小數(shù)點后2位, 單位為m。 <distance>:浮點數(shù)字符串類型,定位完成后輸出的距離信息。最多可輸出小數(shù)點 后2位。如果獲取失敗,那么該值必定為-1。 <rssi>:浮點數(shù)字符串類型,測距完成后輸出的另一端的信號強度信息,最多可輸出 小數(shù)點后2位。如果獲取距離失敗,那么該值必定為0。 |
|
|
示例 |
附近有3個基站(0001,0002,0003),獲取與這3個基站的相對位置: 發(fā)送:UWBRFAT+LOCATION=0001,0002,0003 響應(yīng):+LOCATION=(12.34,34.56,56.78),(11.22,33.44,55.66),(-45.45,-56.56,-67.67) 錯誤示例(輸入基站地址數(shù)量不足): 發(fā)送:UWBRFAT+RANGING=0001,0002 響應(yīng):ERROR |
|
23) 設(shè)置基站地址
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+COORDINATE? |
+COORDINATE=<x>,<y>,<z> |
|
設(shè)置 |
*UWBRFAT+COORDINATE= <x>,<y>,<z> |
OK |
|
說明 |
<x>:整數(shù)類型,基站的x坐標,單位為cm。取值范圍:0-100000(默認值:0) <y>:整數(shù)類型,基站的y坐標,單位為cm。取值范圍:0-100000(默認值:0) <z>:整數(shù)類型,基站的z坐標,單位為cm。取值范圍:0-100000(默認值:0) |
|
|
示例 |
查詢模塊作為基站時的自身坐標: 發(fā)送:UWBRFAT+COORDINATE? 響應(yīng):+COORDINATE=12345,0,54321 設(shè)置模塊的自身坐標: 發(fā)送:UWBRFAT+COORDINATE=12345,54321,100 響應(yīng):OK |
|
24) 設(shè)置測距偏移
|
命令 |
響應(yīng) |
|
|
查詢 |
UWBRFAT+DISTOFFSET? |
+DISTOFFSET=<offset> |
|
設(shè)置 |
*UWBRFAT+DISTOFFSET=<offset> |
OK |
|
說明 |
<offset>:整數(shù)類型。范圍:-500~500。默認值:0。設(shè)置模塊使用測距或定位功能 時的測距結(jié)果的偏移值。單位為cm。 當設(shè)置的偏移值為正數(shù)時,模塊將在測距結(jié)果中額外添加該偏移值;當值為負數(shù)時, 則減少該偏移值。 |
|
|
示例 |
查詢測距偏移值: 發(fā)送:UWBRFAT+DISTOFFSET? 響應(yīng):+DISTOFFSET=34 設(shè)置測距偏移值: 發(fā)送:UWBRFAT+DISTOFFSET=100 響應(yīng):OK |
|
UWB650模塊深度解析系列
UWB650模塊深度解析一 :UWB技術(shù)及UWB650模塊導論