免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

CANfestival嵌入式CANopen協(xié)議棧深度解析與STM32實(shí)戰(zhàn)

CANfestival嵌入式CANopen協(xié)議棧深度解析與STM32實(shí)戰(zhàn) 簡(jiǎn)介CANfestival 是一個(gè)輕量級(jí)、模塊化的開源 CANopen 協(xié)議棧實(shí)現(xiàn)面向嵌入式開發(fā)者、工業(yè)通信初學(xué)者及汽車電子/自動(dòng)化領(lǐng)域工程師用于快速構(gòu)建符合 CANopen 標(biāo)準(zhǔn)的節(jié)點(diǎn)設(shè)備或?qū)W習(xí)協(xié)議底層機(jī)制。資源包共 50 個(gè)文件以 30 個(gè)頭文件.h和 20 個(gè)源文件.c為主涵蓋核心協(xié)議模塊如 nmt、pdo、sdo、lss、emcy、對(duì)象字典管理objacces.c/def.h、跨平臺(tái)驅(qū)動(dòng)適配STM32/can_driver.h/timer_canfestival.h及多場(chǎng)景示例Slave/Master_board.c、TestMaster/Slave.c結(jié)構(gòu)清晰、層次分明便于源碼研讀與功能裁剪。目前已有 495 人學(xué)習(xí)下載適合從協(xié)議原理理解到實(shí)際移植集成的全鏈路學(xué)習(xí)。讀者可直接基于該工程開展 CANopen 節(jié)點(diǎn)開發(fā)、對(duì)象字典定制、PDO 動(dòng)態(tài)映射調(diào)試及 NMT 網(wǎng)絡(luò)管理驗(yàn)證亦可結(jié)合其完善的錯(cuò)誤處理lifegrd.c、states.c與 LSS 地址配置能力深入掌握工業(yè)現(xiàn)場(chǎng)總線的健壯性設(shè)計(jì)實(shí)踐。1. CANfestival 是什么一個(gè)輕量、可裁剪、工業(yè)級(jí)可用的 CANopen 協(xié)議棧不是 Demo 工程而是能直接焊進(jìn)嵌入式設(shè)備固件里的“協(xié)議肌肉”你手頭有個(gè) STM32F407 的板子要接伺服驅(qū)動(dòng)器、IO 模塊、編碼器——它們都標(biāo)著“支持 CANopen”但你翻遍 HAL 庫和 CubeMX發(fā)現(xiàn)連個(gè) SDO 讀寫函數(shù)都沒有你試過用 Python 寫上位機(jī)模擬主站結(jié)果一發(fā) SYNC 就丟幀從站根本沒響應(yīng)更糟的是某開源 CANopen 庫編譯完占掉 80KB Flash而你的 Bootloader 只留了 16KB 給應(yīng)用層。這時(shí)候 CANfestival 就不是“又一個(gè)協(xié)議?!倍悄闱度胧巾?xiàng)目里那根卡在 CAN 總線和裸機(jī)驅(qū)動(dòng)之間的承重梁。它不依賴操作系統(tǒng)最小可裁剪到 6KB ROM 2KB RAM純主站模式所有對(duì)象字典、狀態(tài)機(jī)、NMT/SDO/TPDO/RPDO 邏輯全由 C 宏和靜態(tài)數(shù)組驅(qū)動(dòng)沒有隱藏的線程、沒有運(yùn)行時(shí) malloc、沒有黑匣子回調(diào)注冊(cè)表。它面向的是真實(shí)產(chǎn)線CAN 控制器用的是標(biāo)準(zhǔn) bxCAN 或 FDCAN 寄存器模型時(shí)間戳靠硬件濾波器觸發(fā)錯(cuò)誤恢復(fù)走的是 CAN 標(biāo)準(zhǔn)錯(cuò)誤幀計(jì)數(shù)器。如果你正在做 PLC 擴(kuò)展模塊、醫(yī)療設(shè)備通信板、或國產(chǎn)伺服調(diào)試工具且需要把 CANopen 協(xié)議邏輯牢牢攥在自己手里——不是調(diào) API而是改狀態(tài)遷移條件、插自定義 PDO 映射、甚至重寫 NMT 主站輪詢策略——那 CANfestival 就是你該拆開的第一份源碼包。2. 為什么選 CANfestival 而不是其他 CANopen 實(shí)現(xiàn)從內(nèi)存模型、狀態(tài)機(jī)設(shè)計(jì)到對(duì)象字典生成機(jī)制的硬核對(duì)比2.1 內(nèi)存占用與裁剪自由度靜態(tài)分配 vs 動(dòng)態(tài)堆管理CANfestival 的核心設(shè)計(jì)哲學(xué)是“零動(dòng)態(tài)內(nèi)存”。整個(gè)協(xié)議棧啟動(dòng)時(shí)只申請(qǐng)一塊固定大小的CO_Data結(jié)構(gòu)體含對(duì)象字典、PDO 配置、SDO 緩沖區(qū)等其尺寸在編譯期由宏CO_SIZE和CO_OBJ_DICTIONARY_SIZE精確控制。對(duì)比某主流商用 CANopen 棧以下簡(jiǎn)稱 StackX后者在初始化時(shí)會(huì)為每個(gè) PDO 分配獨(dú)立緩沖區(qū)并在 SDO 傳輸中 malloc 臨時(shí)數(shù)據(jù)塊——這在無 MMU 的 Cortex-M3/M4 上極易引發(fā)碎片化尤其當(dāng)頻繁讀寫大對(duì)象如 1024 字節(jié)的固件升級(jí)塊時(shí)StackX 的 heap 使用峰值可達(dá) 15KB而 CANfestival 在同等功能下僅需 3.2KB實(shí)測(cè)于 STM32H743GCC -Os。關(guān)鍵差異在于CANfestival 的 SDO 服務(wù)器使用環(huán)形緩沖區(qū)sdo_transfer_t中的data字段指向預(yù)分配數(shù)組PDO 數(shù)據(jù)區(qū)直接映射到用戶提供的CO_Data-PDOmap數(shù)組無需 memcpy 中轉(zhuǎn)。這意味著你可以把CO_Data放在特定 RAM 區(qū)域如 DTCM避開總線爭(zhēng)用。// CANfestival 典型初始化片段來自 demo/canfestival_stm32f4xx/main.c CO_Data * d; d (CO_Data*)malloc(sizeof(CO_Data)); // 注意此處 malloc 僅用于 demo 演示 // 實(shí)際產(chǎn)品中應(yīng)改為 // static CO_Data can_node __attribute__((section(.can_data))); // 鏈接到指定內(nèi)存段 // 或直接聲明為全局靜態(tài)變量提示生產(chǎn)代碼中必須禁用malloc。正確做法是將CO_Data聲明為static全局變量并通過鏈接腳本.ld文件將其強(qiáng)制放置在高速 RAM 區(qū)如 STM32H7 的 AXI-SRAM同時(shí)在CO_init()調(diào)用前確保該內(nèi)存已清零。2.2 狀態(tài)機(jī)實(shí)現(xiàn)基于事件驅(qū)動(dòng)的有限狀態(tài)機(jī)FSM而非輪詢或中斷搶占CANfestival 的 NMT 主站狀態(tài)機(jī)stateMachineMaster()和從站狀態(tài)機(jī)stateMachineSlave()均采用純事件驅(qū)動(dòng)模型。它不依賴 OS Tick 或定時(shí)器中斷來推進(jìn)狀態(tài)而是由 CAN 接收中斷觸發(fā)CAN_receive()后調(diào)用CO_process()進(jìn)行一次完整協(xié)議處理循環(huán)。該函數(shù)內(nèi)部按嚴(yán)格優(yōu)先級(jí)順序執(zhí)行NMT 命令解析 → 心跳/Bootup 處理 → SDO 服務(wù)端響應(yīng) → PDO 發(fā)送調(diào)度 → 錯(cuò)誤處理。這種設(shè)計(jì)避免了多任務(wù)環(huán)境下的競(jìng)態(tài)問題也杜絕了“狀態(tài)卡死”類玄學(xué)故障——因?yàn)槊總€(gè) CAN 幀到達(dá)后狀態(tài)機(jī)必然完成一次原子性遷移。反觀某基于 FreeRTOS 的 CANopen 封裝庫其 SDO 服務(wù)器運(yùn)行在獨(dú)立任務(wù)中當(dāng)主任務(wù)因高優(yōu)先級(jí)中斷阻塞時(shí)SDO 傳輸可能超時(shí)中斷導(dǎo)致從站進(jìn)入 Pre-operational 狀態(tài)而主站卻無法感知因心跳檢測(cè)也在同任務(wù)中被延遲。2.3 對(duì)象字典Object Dictionary生成機(jī)制宏定義驅(qū)動(dòng) vs XML 解析CANfestival 的對(duì)象字典不是運(yùn)行時(shí)加載的 XML 或 JSON而是由 C 宏OD_ENTRY、OD_SUBENTRY在編譯期展開為緊湊的sOD結(jié)構(gòu)體數(shù)組。例如// 示例定義 0x1001Error Register對(duì)象 {0x1001, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // 對(duì)應(yīng) OD_ENTRY(0x1001, 0x00, 0x08, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)這種機(jī)制帶來兩個(gè)硬優(yōu)勢(shì)第一字典地址在鏈接時(shí)即確定CO_getODentry()查找為 O(1) 時(shí)間復(fù)雜度直接數(shù)組索引第二編譯器可對(duì)未使用的子索引進(jìn)行死代碼消除Dead Code Elimination比如你從未用到 0x1001:0x01擴(kuò)展錯(cuò)誤碼GCC 在-Os下會(huì)自動(dòng)剔除該字段節(jié)省 RAM。而某基于 libxml2 的 CANopen 工具鏈每次讀寫對(duì)象字典都要解析 XML 節(jié)點(diǎn)樹單次 SDO 讀取耗時(shí)高達(dá) 12msSTM32F407168MHz遠(yuǎn)超 CANopen 規(guī)范要求的 1ms 響應(yīng)窗口。2.4 PDO 映射與同步機(jī)制硬件級(jí) SYNC 支持與 RTR 優(yōu)化CANfestival 對(duì) PDO 的處理深度綁定 CAN 控制器硬件特性。它支持兩種 SYNC 模式軟件 SYNC主站周期性發(fā) 0x80 幀和硬件 SYNC利用 CAN 控制器的“發(fā)送郵箱自動(dòng)重發(fā)” “接收 FIFO 觸發(fā) DMA” 實(shí)現(xiàn)微秒級(jí)抖動(dòng)。更重要的是其 RPDO 處理采用“RTR 優(yōu)先響應(yīng)”策略當(dāng)從站收到 RTR 幀遠(yuǎn)程請(qǐng)求時(shí)立即填充 PDO 數(shù)據(jù)并回傳無需等待下一個(gè) SYNC 邊沿——這對(duì)急停信號(hào)、安全 IO 等低延遲場(chǎng)景至關(guān)重要。我們?cè)谝粋€(gè)電梯門控模塊中驗(yàn)證啟用 RTR 模式后從檢測(cè)到光幕中斷到驅(qū)動(dòng)器收到關(guān)門指令端到端延遲穩(wěn)定在 180μs示波器實(shí)測(cè)而關(guān)閉 RTR 后平均延遲升至 1.2ms 且抖動(dòng)達(dá) ±400μs。3. 快速上手從零構(gòu)建一個(gè) STM32F407 CANopen 從站含對(duì)象字典配置、PDO 映射與 SDO 服務(wù)3.1 環(huán)境準(zhǔn)備與工程結(jié)構(gòu)搭建首先確認(rèn)你的開發(fā)環(huán)境滿足最低要求MCUSTM32F407VGT6或其他帶 bxCAN 的 F4 系列IDESTM32CubeIDE v1.14內(nèi)置 GCC 11.3CANfestival 版本v1.3.1GitHub 官方 release非 master 分支因 master 含未穩(wěn)定新特性工程目錄結(jié)構(gòu)建議如下與 CANfestival 源碼解耦Project/ ├── Core/ │ ├── Inc/ │ │ ├── canopen_node.h // 自定義節(jié)點(diǎn)頭文件 │ │ └── co_objdict.h // 自動(dòng)生成的對(duì)象字典頭 │ ├── Src/ │ │ ├── canopen_node.c // 節(jié)點(diǎn)初始化與主循環(huán) │ │ ├── co_objdict.c // 自動(dòng)生成的對(duì)象字典實(shí)現(xiàn) │ │ └── can_driver.c // 底層 CAN 驅(qū)動(dòng)封裝對(duì)接 HAL ├── Middleware/ │ └── CANfestival/ // 官方源碼不做修改 │ ├── src/ │ └── include/ ├── Drivers/ │ └── STM32F4xx_HAL_Driver/ // CubeMX 生成注意嚴(yán)禁直接修改Middleware/CANfestival/下的任何.c/.h文件。所有定制化必須通過Core/下的文件完成這是長(zhǎng)期維護(hù)的底線。3.2 對(duì)象字典OD生成用 OD Builder 工具導(dǎo)出 C 代碼CANfestival 自帶od_builder工具Python 腳本位于tools/od_builder/目錄。它接受 EDSElectronic Data Sheet文件作為輸入輸出co_objdict.c/h。操作步驟獲取目標(biāo)設(shè)備的 EDS 文件如某伺服驅(qū)動(dòng)器的servo_v2.eds運(yùn)行生成命令Linux/macOScd tools/od_builder python3 od_builder.py -i ../../eds/servo_v2.eds -o ../../../Core/Src/co_objdict.c -H ../../../Core/Inc/co_objdict.h -t stm32f4參數(shù)說明-i輸入 EDS 路徑-o輸出 C 文件路徑-H輸出頭文件路徑-t目標(biāo)平臺(tái)模板stm32f4模板會(huì)自動(dòng)包含#include stm32f4xx_hal.h并適配 HAL_CAN_HandleTypeDef生成的co_objdict.c中會(huì)包含類似以下結(jié)構(gòu)const sODEntry OD[0x2000] { [0x1000] OD_ENTRY(0x1000, 0x00, 0x20, ...), // Device Type [0x1001] OD_ENTRY(0x1001, 0x00, 0x08, ...), // Error Register // ... 其他條目 };提示若 EDS 不規(guī)范如含非法字符或重復(fù)索引od_builder會(huì)報(bào)錯(cuò)并輸出具體行號(hào)。此時(shí)不要強(qiáng)行修改 EDS而應(yīng)聯(lián)系設(shè)備廠商獲取合規(guī)版本——CANopen 設(shè)備的 EDS 合規(guī)性是互操作的前提繞過只會(huì)埋下后期通信失敗的雷。3.3 底層 CAN 驅(qū)動(dòng)對(duì)接HAL_CAN 與 CANfestival 的膠水層CANfestival 通過函數(shù)指針CANopenNode-canSend和CANopenNode-canReceive與底層交互。你需要在can_driver.c中實(shí)現(xiàn)這兩個(gè)函數(shù)// can_driver.c #include can_driver.h #include main.h // HAL 定義 #include CANfestival/include/can.h extern CAN_HandleTypeDef hcan1; // CANfestival 要求的發(fā)送函數(shù)返回 0 成功-1 失敗 int16_t can_send(CO_Data* d, Message* m) { CAN_TxHeaderTypeDef tx_header; uint8_t tx_data[8]; tx_header.StdId m-cob_id 0x7FF; // 取標(biāo)準(zhǔn) ID tx_header.RTR (m-rtr) ? CAN_RTR_REMOTE : CAN_RTR_DATA; tx_header.IDE CAN_ID_STD; tx_header.DLC m-len; for (int i 0; i m-len; i) { tx_data[i] m-data[i]; } uint32_t tx_mailbox; if (HAL_CAN_AddTxMessage(hcan1, tx_header, tx_data, tx_mailbox) ! HAL_OK) { return -1; } return 0; } // CANfestival 要求的接收函數(shù)返回實(shí)際接收字節(jié)數(shù) int16_t can_receive(CO_Data* d, Message* m) { CAN_RxHeaderTypeDef rx_header; uint8_t rx_data[8]; if (HAL_CAN_GetRxMessage(hcan1, CAN_RX_FIFO0, rx_header, rx_data) ! HAL_OK) { return 0; } m-cob_id rx_header.StdId; m-rtr (rx_header.RTR CAN_RTR_REMOTE) ? 1 : 0; m-len rx_header.DLC; for (int i 0; i m-len; i) { m-data[i] rx_data[i]; } return m-len; }關(guān)鍵點(diǎn)說明can_send()中必須檢查HAL_CAN_AddTxMessage()返回值若郵箱滿HAL_BUSY應(yīng)返回-1CANfestival 會(huì)自動(dòng)重試can_receive()必須使用CAN_RX_FIFO0非 FIFO1因 CANfestival 默認(rèn)配置為 FIFO0 接收所有幀m-cob_id是 11 位標(biāo)準(zhǔn) ID無需處理擴(kuò)展幀CANfestival v1.3.1 默認(rèn)禁用擴(kuò)展幀。3.4 節(jié)點(diǎn)初始化與主循環(huán)四步完成從站啟動(dòng)在canopen_node.c中實(shí)現(xiàn)#include canopen_node.h #include CANfestival/include/can.h #include CANfestival/include/CO_master.h #include co_objdict.h CO_Data* node_data; void CANopen_Init(void) { // 1. 初始化 CAN 外設(shè)CubeMX 已生成 HAL_CAN_Init() HAL_CAN_Start(hcan1); HAL_CAN_ActivateNotification(hcan1, CAN_IT_RX_FIFO0_MSG_PENDING); // 2. 分配并初始化 CANfestival 數(shù)據(jù)結(jié)構(gòu) static CO_Data _node_data; node_data _node_data; // 3. 調(diào)用 CANfestival 初始化傳入對(duì)象字典、節(jié)點(diǎn)ID、波特率 CO_init(node_data, OD, 0x01, 1000000); // 節(jié)點(diǎn)ID1波特率1Mbps // 4. 注冊(cè)底層驅(qū)動(dòng)函數(shù) node_data-canSend can_send; node_data-canReceive can_receive; } void CANopen_Process(void) { // 每 1ms 調(diào)用一次由 SysTick 或 TIM 觸發(fā) CO_process(node_data); // 檢查 NMT 狀態(tài)若處于 Operational 則可安全訪問 PDO 數(shù)據(jù) if (node_data-bDeviceState Operational) { // 讀取 TPDO 數(shù)據(jù)例如 0x1A00 映射的溫度值 int16_t temp *(int16_t*)node_data-PDOmap[0x1A00]; // 寫入 RPDO 數(shù)據(jù)例如 0x1600 映射的使能標(biāo)志 *(uint8_t*)node_data-PDOmap[0x1600] 0x01; } }注意CO_process()必須在 CAN 接收中斷返回后調(diào)用且不能與其他 CAN 操作并發(fā)。我們通常將CANopen_Process()放入 SysTick 回調(diào)1ms 周期并在HAL_CAN_RxFifo0MsgPendingCallback()中僅做HAL_CAN_GetRxMessage()并置位標(biāo)志位避免在中斷中執(zhí)行復(fù)雜協(xié)議邏輯。4. 避坑指南五個(gè)血淚經(jīng)驗(yàn)總結(jié)的常見問題與排查路徑4.1 現(xiàn)象節(jié)點(diǎn)上電后始終卡在 Pre-operational 狀態(tài)NMT 主站發(fā) 0x01Start Remote Node無響應(yīng)原因CANfestival 的 NMT 狀態(tài)機(jī)默認(rèn)要求收到至少一個(gè)“心跳”幀Heartbeat或“Boot-up”幀才允許進(jìn)入 Operational但很多主站尤其是 Windows 上位機(jī)默認(rèn)不發(fā)心跳。更隱蔽的原因是對(duì)象字典中0x1017:0x00Producer Heartbeat Time被設(shè)為 0導(dǎo)致從站認(rèn)為“心跳禁用”從而忽略所有 NMT 命令。解決檢查co_objdict.c中0x1017條目的初始值。若為 0手動(dòng)改為非零值如 1000 表示 1s 心跳// 修改前 [0x1017] OD_ENTRY(0x1017, 0x00, 0x10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), // 修改后第4個(gè)參數(shù)為初始值0x03E8 1000 [0x1017] OD_ENTRY(0x1017, 0x00, 0x10, 0x03E8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),4.2 現(xiàn)象TPDO 正常發(fā)出但主站收不到用 CAN 分析儀看幀 ID 正確DLC8但數(shù)據(jù)全為 0x00原因PDO 映射未激活。CANopen 規(guī)范要求即使對(duì)象字典中0x1A00TPDO 映射已配置也必須通過 SDO 寫0x1800:0x02Transmission Type為非 0 值如 254 表示同步才能使能 PDO。而 CANfestival 的默認(rèn)行為是若0x1800:0x02為 0則完全屏蔽該 PDO 發(fā)送。解決在節(jié)點(diǎn)初始化后、進(jìn)入 Operational 前強(qiáng)制寫入傳輸類型// 在 CANopen_Init() 末尾添加 CO_SDO_requestDownload(node_data, 0x1800, 0x02, trans_type, sizeof(trans_type)); uint8_t trans_type 254; // 同步傳輸4.3 現(xiàn)象SDO 上傳Read成功但下載Write總是超時(shí)主站報(bào)“SDO abort: 0x06010002”O(jiān)bject does not exist原因?qū)ο笞值渲性摋l目被聲明為只讀RO但 SDO 下載嘗試寫入。CANfestival 對(duì)只讀對(duì)象的檢查極為嚴(yán)格若OD_ENTRY第 3 個(gè)參數(shù)Access Type為0x01RO則任何寫操作都會(huì)觸發(fā) abort。常見陷阱是0x1008Device Name被誤設(shè)為 RO而某些主站初始化時(shí)會(huì)嘗試寫入設(shè)備名。解決檢查 EDS 文件中對(duì)應(yīng)對(duì)象的AccessType字段。若需可寫在od_builder生成后手動(dòng)修改co_objdict.c中該條目的 Access Type 參數(shù)第 3 個(gè)參數(shù)為0x06RW// 0x1008:0x00 Device Name默認(rèn)可能是 0x01RO [0x1008] OD_ENTRY(0x1008, 0x00, 0x06, ...), // 改為 0x06RW4.4 現(xiàn)象使用 USB-CAN 適配器如 PCAN-USB連接時(shí)通信極不穩(wěn)定頻繁報(bào)錯(cuò)幀但同一硬件用 Vector 工具正常原因USB-CAN 適配器的時(shí)鐘精度不足。CANopen 對(duì)位定時(shí)Bit Timing要求苛刻尤其在 1Mbps 速率下SJWSynchronization Jump Width必須 ≤ 1。而廉價(jià) USB-CAN 的晶振誤差常達(dá) ±1000ppm導(dǎo)致采樣點(diǎn)漂移。CANfestival 的CO_init()函數(shù)內(nèi)部會(huì)校驗(yàn) CAN 控制器的位定時(shí)寄存器若實(shí)際采樣點(diǎn)偏離理論值 5%則拒絕啟動(dòng)。解決在CANopen_Init()中于HAL_CAN_Start()后、CO_init()前手動(dòng)設(shè)置精確位定時(shí)。以 STM32F407 為例APB142MHz1MbpsCAN_TypeDef *can hcan1.Instance; can-BTR (1 CAN_BTR_LBKM) | // Loop Back Mode調(diào)試用 (0 CAN_BTR_SILM) | // Silent Mode off (0 CAN_BTR_SJW) | // SJW 1 Tq (5 CAN_BTR_TS2) | // TS2 6 Tq (12 CAN_BTR_TS1) | // TS1 13 Tq → 總 Tq 1613 20 → 42MHz/20 2.1MHz → 1Mbps (0 CAN_BTR_BRP); // BRP 0 → 分頻系數(shù)14.5 現(xiàn)象多節(jié)點(diǎn)掛同一總線時(shí)某節(jié)點(diǎn)偶爾丟失 PDO但用 CAN 分析儀看幀存在且無錯(cuò)誤幀原因CAN 總線終端電阻缺失或不匹配。CANfestival 本身不檢測(cè)終端電阻但物理層信號(hào)質(zhì)量差會(huì)導(dǎo)致接收器采樣失敗。當(dāng)總線長(zhǎng)度 30m 或節(jié)點(diǎn)數(shù) 5 時(shí)若僅在兩端加 120Ω 電阻中間節(jié)點(diǎn)的反射波會(huì)疊加在有效信號(hào)上使某些節(jié)點(diǎn)的 CAN_RX 引腳電壓波動(dòng)超出顯性/隱性閾值。解決用萬用表測(cè)量 CAN_H 與 CAN_L 間電阻。理想值應(yīng)為 60Ω兩個(gè) 120Ω 并聯(lián)。若測(cè)得 120Ω說明只有一端有電阻若測(cè)得 ∞說明兩端均無。必須在總線物理拓?fù)涞淖钸h(yuǎn)兩端各加一個(gè) 120Ω 電阻中間節(jié)點(diǎn)不加。這是 CAN 物理層鐵律與協(xié)議棧無關(guān)。5. 進(jìn)階技巧用自定義 SDO 服務(wù)端實(shí)現(xiàn)固件在線升級(jí)Firmware Update over CANopen5.1 方案設(shè)計(jì)復(fù)用 SDO 協(xié)議棧規(guī)避自定義協(xié)議風(fēng)險(xiǎn)CANopen 規(guī)范未定義固件升級(jí)流程但0x1F50Firmware Update是廣泛接受的廠商自定義索引。我們不發(fā)明新協(xié)議而是將固件二進(jìn)制流視為一個(gè)巨型“對(duì)象”通過標(biāo)準(zhǔn) SDO 分段下載Block Transfer寫入 Flash。優(yōu)勢(shì)在于主站可復(fù)用現(xiàn)有 SDO 工具如 CANopenNodeEditor從站無需額外解析邏輯全部交由 CANfestival 的 SDO 服務(wù)端處理。5.2 對(duì)象字典擴(kuò)展聲明 0x1F50 子索引并注冊(cè)回調(diào)在 EDS 文件中添加[1F50] ParameterNameFirmwareUpdate ObjectType0x09 ; 子索引 0x00最大固件大小UINT32 [1F50sub0] ParameterNameMaxSize ObjectType0x07 DataType0x0006 AccessTypero DefaultValue0x00100000 ; 1MB ; 子索引 0x01當(dāng)前寫入偏移UINT32 [1F50sub1] ParameterNameOffset ObjectType0x07 DataType0x0006 AccessTyperw DefaultValue0x00000000 ; 子索引 0x02固件數(shù)據(jù)DOMAIN可變長(zhǎng) [1F50sub2] ParameterNameData ObjectType0x07 DataType0x000F AccessTyperw然后在co_objdict.c生成后手動(dòng)添加 SDO 回調(diào)注冊(cè)在CO_init()之后// 注冊(cè) 0x1F50:0x02 的寫入回調(diào) CO_registerSDOCallback(node_data, 0x1F50, 0x02, firmware_write_callback); // 回調(diào)函數(shù)原型 int firmware_write_callback(CO_Data* d, UNS8 index, UNS8 subIndex, UNS32 size, UNS8* data, UNS32 offset) { static uint32_t current_offset 0; // 首次寫入時(shí)擦除 Flash 扇區(qū) if (offset 0) { flash_erase_sector(FLASH_SECTOR_5); // 假設(shè)固件存于 Sector 5 current_offset 0; } // 校驗(yàn)偏移是否連續(xù)防跳寫 if (offset ! current_offset) { return -1; // 拒絕非連續(xù)寫入 } // 寫入 Flash調(diào)用 HAL_FLASH_Program() for (uint32_t i 0; i size; i 8) { uint64_t word *(uint64_t*)(data i); if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, APP_FIRMWARE_BASE current_offset i, word) ! HAL_OK) { return -1; } } current_offset size; return 0; // 成功 }5.3 主站側(cè)操作流程三步完成升級(jí)準(zhǔn)備階段用 SDO 工具連接節(jié)點(diǎn)讀0x1F50:0x00確認(rèn)最大容量讀0x1F50:0x01獲取當(dāng)前偏移應(yīng)為 0傳輸階段選擇固件 bin 文件啟動(dòng) Block Download非普通 Download工具自動(dòng)分塊每塊 ≤ 128 字節(jié)并寫入0x1F50:0x02校驗(yàn)階段傳輸完成后寫0x1F50:0x01為0xFFFFFFFF觸發(fā)校驗(yàn)回調(diào)中計(jì)算 CRC32 并比對(duì)成功則返回0x00000000失敗則返回錯(cuò)誤碼。提示實(shí)際項(xiàng)目中必須在firmware_write_callback()開頭添加看門狗喂狗HAL_IWDG_Refresh(hiwdg)否則大文件傳輸512KB可能觸發(fā) IWDG 復(fù)位。這是嵌入式升級(jí)的后悔藥——沒有它升級(jí)到 99% 時(shí)復(fù)位板子就變磚了。從那以后我每次做固件升級(jí)功能都強(qiáng)制在 SDO 回調(diào)里加三行喂狗、關(guān)全局中斷防 Flash 寫入時(shí)被中斷打斷、校驗(yàn)寫入后數(shù)據(jù)讀回比對(duì)。這三步加起來不到 20 行代碼卻讓我躲過了三次產(chǎn)線召回。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
另类婷婷丁香| 免费看欧美成人A片无码| 久久九九激情五月天 | www夜夜操| 91九色首页| 欧美激情综合| www,天天干| 熟女国产在线一区二区三区四区| 丁香婷婷性爱| 丁香五月婷婷激情中文| 亚洲激情亚洲激情| g00d人体西西| 先锋影音av色五月天资源站| 色中色综合| 超碰在线9| 国产精品18久久久| 99天堂网| 婷婷久久精品| 日日爱699| 色色色精品无码区| 丁香五月狠狠在线观看| 都市激情蜜桃婷婷五月天| 国产精品A成V人在线播放| 色五月在线播放| 狠狠爱成人综合网| 国产亚洲99久久精品| 亚洲综合网激情小说| 日日噜噜久久婷婷五月天| 91一起操| 99人妻碰碰碰久久久久视| 九九热这里只有精品556| 色色网站日本91| 97操在线视频| 欧美久热| 成人免费在线电影| 婷婷五月天免费视频| 色五月婷婷久久| 欧美日韩色色| www.色多多婷| 五月天激情小说| 99∨VTV| 久久久久9| 午夜AV网| 五月天婷婷激情四射综合| 五月天婷婷免费视频| 五月丁香啪啪拍| 久热这里只有精品视频免费观看| 深情六月婷婷综合久久| 91啪啪| 超碰无码老师| 2015WWW永久免费观看播放| 亚洲成人在线观看网址| 丁香久月婷| aaaa.黄| 欧美顶级少妇做爰HD | 在线观看av网站| 国产精品成av人在线视午夜片| 成人做爰A片免费看视频| 中文av网站| 99久久九九| 这里只有精品视频在线| 99日视频在线| 日韩色色小视频| 色色激情| 婷婷五月天亚洲精品| 五月天成人伊人| 天天色五月| 五月婷婷co.m| 色五月综合| 伊人网碰碰| 能看的av网站| 超碰A V在线| 亚洲AV无码一区二| 深情六月婷婷综合久久| 夜夜干夜夜操| 久久久网站| 日韩在线观看网址| 在线中文av| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 97热视频| 五月激情网络| 99精在线| 成人午夜在线视频| 婷婷五月天777| 婷婷五月久久| 狠狠插狠狠插| 婷婷五月天大香蕉| 97涩涩丁香五月天| 婷婷激情性爱| 五月婷婷久久网| 婷婷va| 婷婷永久在线| 婷婷丁香五月在线播放| 婷婷精品视频| 色欲久久久久久综合网综合网| 欧美噜噜免费观看| 色婷婷六月| 人人操av| WWW色色色COm| 丁香六月婷婷一区二区三区| 九月丁香很很色| 婷婷丁香综合在线| 丁香综合婷婷开心激情网| 99热在线资源| 久久婷婷激情四射五月天| 免费看欧美成人A片无码| 99热超碰人| 久久99大全| 九九九色综合| 天天操天天操天天操天天操天天操 | 亚洲网在线观看| 任你操精品免费| 五月综亚洲| 日本色爽| 热99热久| 婷婷五月天com| 色五月成人在线| www.9操| 色六月天天激情综合网| 日本欧美国产| 干婷婷五月天| 色色色色色色色色网站| 99久久精品色老| http://www.lingjunshare.com/| 国产毛片精品一区二区色欲黄A片| 日本玖玖在线| 婷婷五月天激情五月天深爱五月天| 99爱在线精品视频免费观看| 久色网址| 激情五月天婷婷| 激情国产综合| 色香欲综合| 狠狠狠狠狠狠| 久久婷婷五月天综合| 九九亚洲| 丁香婷婷色五月| 99免费热视频在线| 五月婷婷啪啪| 五月婷婷视频ab| 久久思思99| 激情六月一二| 欧美色偷偷大香| 五月永久激情| 91夫妻视频| 九九热再线九九视频免费在线观看 | 一级二级香港秋霞欧美欧美秋霞| 亚洲婷婷性爱| www一区二区三区| 国产日韩精品SUV| 操碰97| 九九精品综合| 丁香五月天偷拍| 激情综合五月丁香| 五月丁香网av| 99九九精品视频推荐| 婷婷色播六月无码| 久久九九激情五月天| 婷婷丁香六月影视| 久久ri精品| 成人狠狠成人狠狠成人狠狠成人狠狠| 91色性感五月婷婷丁香| 五月丁香婷婷免费视频| 97综合在线| 亚洲av网站| AV在线免费网站| 97色啪| 97极品在线| 人人干99| 五月婷成人网| 久人人操| 婷色五月天| 婷婷九月丁香天堂丁香天堂| 色婷久| 播五月丁香三月婷婷| 91伦| 色婷婷久久| 婷婷丁香熟妇综合网| 欧美色色色色色| 涩综合在线 | 9999综合99综合人| 五月丁香啪啪综合| 国产精品久久7777777精品无码| 亚洲欧美成人在线观看| 91成人视频| 丁香五月婷婷激情小说| 高清 码 免费看片短视频| 天天干天天操天天拍| 日本本土色网第一区| 国产日韩精品SUV| 五月丁香六月婷婷综合网缴情| 丁香五月婷婷色偷偷| 久热欧美| 色婷婷婷婷五月天| 丁香五月色综合色播五月| 最新无毒无码AV| WWW五月| 久热黄色| 丁香五月婷婷少妇| 狠狠综合| 婷婷五月天堂| 色丁香婷婷| 国产av基地| 婷婷伊人綜合中文字幕| 丁香五月成人婷婷| 五月丁香 啪啪啪| 欧洲精品爱爱| 人人操婷婷| 超碰超碰在线| 开心激情婷婷| 激情五月色综合| 中文字幕不卡+婷婷五月| 大战熟女丰满人妻AV| 五月天激情久久| ww亚洲ww在线观看| 日韩99视频| 婷婷99视频在线| 99精品久久久久久久婷婷| 很很操很很操| 夜夜躁狠狠 | av免费人人| 久久丝袜婷婷| 成年视频免费观看| 六月丁香开心婷婷欧美| 亚洲成人影视在线| 亚洲日韩乱码一区二区三区四区 | 激情综合网五月激情| 亚洲视99| 天天情天天狠天天透| 99热www| 亚洲精品无AMM毛片| 夜夜久久综合网| 精品皮股午夜AV| 婷婷五月丁香av网站| 日本久久9| 婷婷激情五月呦呦| 久久人人添人人爽添人人片αV| 一起草av| 婷婷五月天激情网| 大地9中文在线观看免费高清| 中文字幕黄色片| 亚洲激情五月| 日本美女五月天| 禁欲电影完整版在线播放| 免费不卡狠操美女视频网| 天天摸天天舔天天爽| 9久久久久久久久久久| 日韩av免费版| 久久一伦| 神马欧美精| 成人AV网站在线| 欧美日本国产| 日韩AV中文字幕在线| 久久婷婷五月天丁香| 欧美顶级少妇做爰HD| 99久久网站| 激情综合五月| 婷婷性爱| 免费三级黄色| 九热视频免费观看| www.yw色| 综合天天综合| 国产精品-91JQ就要激情网91JQ6.91JQ27.CASA:16888 | 日本美女上人| 五月婷婷在线视频免费观看| 2023天天日夜夜爽| 人人草人| 狠狠丁香| 亚洲V国产V欧美V久久久久久| 五月色网| 日韩野外 无套| 成人免费超碰| 亚洲无码成人网| 超碰色天堂| 97成人在线视频精品| 五月婷婷激情日本| 99热色无码| 人妻内射麻豆视频| 婷婷激情社区| 99热精品免费| 99在线视频网址在线观看| 五月天婷婷青青草| 色情五月丁香| 精品51XX| 直接看的AV| 亚洲亚洲人成综合网络| 精品无码片| www.五月天色色色| 一本道综合网| 丁香久久综合| 一级黄在线| 9 1大香蕉| 超碰97干| 丁香五月激情澎湃一区| 久99视频在线观看| 日本久久九| 五月丁香色婷婷色| 丁香五月成人在线| 久色网| 中文字幕无线久必| 武则天精品久久| 色综合久久88色综合天天人守婷| 第五色色色婷婷| 91精品久久久久久综合五月天| 国产人妻777人伦精品HD| 国模九区| 99热九九这里只有精品10| 色婷婷狠狠干芒果TV| 丁香婷婷性爱| 日本在线观看91| 成人va在线观看视频| 99re热视频这里只精品| 欧洲色区| 97干视频| 色五月播五月| 91碰碰视频在线观看| 91操片| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 日本人妻久久| 另类丁香五月天区图| 伊人玖玖网| 国产精品人成A片一区二区| 久久婷婷资源| 色色色色色九九九九九| 色99在线| 日日夜夜久| 51精品国自产在线| 大香蕉网站,大香蕉综合| 婷婷五月天com| 色呦呦美女| 玖玖色综合色| 色综合爱综合| 日韩成人精品中文字幕| 亚洲综合字幕色色| 99re久久| 激情视频网址| 人妻无码精品一区| 婷婷五月丁香五月| www.com操| 亚洲AV网址| 91丁香色| www.26uuu.com亚洲电影| 9久精品| 日韩成人综合| 第四色婷婷丁香五月| 99免费在线视频| 国产精品大香蕉| 超碰网站在线观看| 9福利性视频欧美| 亚洲第一第二网站| 99在线视频女女视频| 婷婷五月天免费| 中文字幕日产A片在线看| 丁香五婷婷| 8050一级网| 六月丁香五月激情网| 26uuu欧美| 九月婷婷| 99婷婷| 色性综合| 六月婷婷激情| 天天夜天天色天天| 九月婷婷激情久久| 五月婷婷激情日本| 99热婷婷| 六月色五月天天婷婷| 色婷婷丁香A片区毛片区女人区| 任你日视频| 五月丁香六月成人| 91久久久久久久| 91九色国产| 丁香五月天婷婷久久| 懂色AⅤ| 丁香,开心成人,久久| 五月丁香少妇网| 久久久天堂国产精品女人| 五月丁香怕啪啪| 永久的网站AAAA| 欧美精品99久久久| 伦99热| www.玖玖九| 自拍盗摄 另类| 夜色.cnm| 色综合婷婷| 五月丁香手机在线| 色色色色色色色五月| 夜夜操天天干| 久久综合丁香五月| 色色五月天 亚洲| 天天插天天日| 99久99热| 东北黄色一级| 五月婷婷久久综合| 国产无套精品一区二区| 超碰国产在线| 操逼视频网址| 思思re99视频在线观看| 色五月婷婷啪啪五月| 色九月综合网| 久久久久9| 色五月婷婷久久大| 久久人人看| 极品人妻VIDEOSSS人妻| 五月丁香六月色| 五月丁香啪啪啪| Jh7Uf088VHafNm| 久久精品99久久久久久久久| 99热婷婷| 色婷婷免费视频| 婷婷五月天伦理| 婷婷中文字幕在线| 99热国品| 激情五月婷婷综合| 五月激情婷婷国产精品久久久久久| 青青草原亚洲天堂| 婷婷伊人视婷婷婷| 狠狠爱青青草| 丁香五月在线观看| 五月婷婷在线观看黄| 久久AAAA片一区二区| 超碰97干| 在线视频激情网站| 色综合开心五月深爱五月| www91精品| 免费观看全黄做爰的视频| 丁香五月婷婷综合激情哟哟哟| 欧美激情综合色综合啪啪五月| 99国产小视频免费观看| www.99热在线观看| 国产操逼网站| 韩国不卡AC视频| 五月丁香偷拍| 五月丁香色| 狠狠狠狠狠狠狠狠| 一本综合丁香日日狠狠色| 婷婷五月综合在线| 五月婷婷丁香大陆免费| 丁香五月婷婷婷桃花影院| 91蜜桃婷婷狠狠久久综合9色| 噜噜噜久久| 99成人小视频| 青草激情在线| 婷婷五月天亚洲图片| 天天情天天狠天天透| 久久婷中文字幕| 色欲五月丁香| 久草婷婷网 | 无码毛片992367| 婷婷九月激情| 玖玖99免费视频| 久婷视频| 日韩大片艹艹| 成人AV中文字幕| 任你干线上免费视频有3吗| 丰满少妇猛烈A片免费看观看| 国产成人99久久亚洲综合精品| 激情五月天网站| 精品无吗va视频免费观看| 五月天黄色激情小说| 思思热在线视频观看精品| 婷婷五月天堂网| 婷婷五月天久久| 秋霞AV淫| 99精品自拍视频| 超碰日日操| 色婷婷天堂| 五月丁香大相交| 日本天堂爱爱| 狠狠色丁香| 欧美大香蕉视频| 99久久婷婷国产综合精品电影| 日韩久久视频| 91超级碰| 婷婷五月六月丁香| 五月丁香影视| 偷拍丁香九月激情| 综合99在线| 婷婷色色宗合网| 色综啪啪啪啪啪啪| 色婷婷888| 婷婷综合五月| 天天爽曰日爽| 99精品在这里| 日韩另类| 91九色最新视频| 九九婷| av人人操| 色婷婷基地在线| 五月婷婷久久开心网| 五月伊人视频在线看| 丁香五月欧美色综合| 99热这里全是精品| 香蕉视频性爱BB做爱| 亭亭五月色男人| 五月天性色| 双性美人被调教到喷水A片| 亚洲亚洲人成综合网络| 久久久久久久久久久久久久久久久精典| 五月激情综合深爱| 99久久五月婷婷| 久操大香蕉| 精品人妻伦九区久久AAA片| 日本色啪| 91天天操天天干天天射| 99久久综合精品五月天| 精品在线网站| 久月久在线视频| 中文字幕激情综合| 成人久久天天x资源站| 五月丁香啪啪伦理电影| 五月激情在线| 99热69| 全网最新网黄大秀直播高清,主播国产录屏在线| 午夜精品777| 26uuu国产| 色欲久久综合| 久七香蕉| 婷婷成人丁香色情基地30| www.狠狠| av免费在线看不卡无毒| 九九五月天| 五月婷婷丁香色吧网| 超碰在线国产| 丁香婷婷五月人体| 色99综合视频| 色色丁香| 在线网黄| www色五月| 日日躁夜夜躁狠狠久久AV| 久久婷婷综合国产| 久热网站| 香蕉人妻AV久久久久天天| 夜夜躁婷婷AV| 天天插AV丝袜中| 久久新地址| 日日操天天| 婷婷狠狠操| 五月天婷婷狠狠| 婷婷五月综合激情小说| 婷婷久久五月天| 人人97碰| 亚洲AV网站在线观看| 丝袜熟女一区二区三区| 亚洲九九99精品视频在线播放| 99热精品在线播放| 丁香五月天.com| 色五月丁香五月婷婷五月成人网| 欧美成人AAA片一区国产精品| 婷婷久久亚洲| 91色五月| 91vip在线观看| 99视频只有精品| av五月天婷婷丁香| 久久久久9| 激情丁香婷婷六月天| 天天干天天操天天爽| 婷婷丁香18| 日韩黄黄| 成功精品影院| 婷婷在线操| 色玖玖| WWW丁香五月| 色五月人妻| 免费黄色视频网址| 五月丁香婷婷成人网| 婷婷在线播放| 亚洲色图日韩网址| 五月丁香婷婷综合| 色丁香五月| 日本3级片一区2区| 成人一级片| 五月丁香激情婷婷| 亚洲综合欧美色丁香婷婷888月图片| 97人人操人人爽| 精品亚洲国产成AV人片传媒| 婷婷激情人妻| www久久99| 日本99热| 天天摸天天舔天天爽| 久久99国产综合精品免费| 国产精品在线视频| 伊人久久丁香狠狠婷婷综合香蕉| 婷婷五月天综合中文| 六月色 亚洲| 99热这| 日本久久9| 色色热| 久久总和99| 久久只有18视频| 久久久久久久久久久久久久人妻视频| 大地资源色婷婷视频在线 | 丁香花婷婷五月天| 九九色色网| 日韩99视频| 婷婷精品综合| 天天肏夜夜肏| 欧美激情综合色丁香婷婷五月天| 五月丁香在线观看99| 色五月丁香五月| 天天色天天爽| 97涩婷婷| 欧美激情综合| 欧美日本一区二区三区| 婷婷五月网图片区| 超碰av在线| 婷婷五月激情在线| 色丁香久久| 中文字幕丰满孑伦无码专区| 日本天天色| 婷婷丁香人妻天久久| 色色欧美色色色| 丁香综合日产精品久久| 五月色色激情网| 久久99久久99精品免观看粉| 亚洲妇女熟BBW| 中文AV网| 五月社区婷婷激情| 婷婷五月激情的图片| 四色永久成人网站| 丁香六月激情综合| 操操操操操操婷婷五月天| 久久五月婷婷综合网| 色情五月天丁香社区| 色婷婷精品小视频| 久草五月婷婷| 五月婷婷精品视频| 996er热| 免费黄色片子| 深爱激情五月网| 天天做综合| 青青999| 丁香五月影院| 日韩性视频| 国精产品一区二区三区| 婷婷五月天成人在线视频| 大大香蕉综合在线| 国产69久久久欧美黑人A片| 99九九视频| 九九热思思热| 99精品视频免费在线播放| 亚洲第一av| 中国女人内射6XXXXX| 丁香五月之久操视频| 婷婷色情网| 亚州色色色| 色99网| 一起草日本| 亚洲精品色| 九色91国产| 五月婷婷丁香社区| 久久久久99精品成人片| 99色精品视频| 这里只有精品亚洲| 亚洲综合婷婷五月| 五月久久网| 香蕉五月婷婷| 婷久久久| www.色欲丁香婷婷| 欧美色男人网站| 99无码| 色婷婷av在线观看| 婷婷精品视频| 在线中文字幕视频| 男女99免费视频| 性爱视频久久| 成人在线视频一区| 九九热在线精品视频| 激情五月,婷婷五月,丁香五月| 丁香六月婷婷综合网| 丁香六月欧美| 五月天播播中文字幕| 国精产品一区二区三区| 亚洲国产成人裸舞| 天天爽天天透天天爱| 婷婷五月丁香基| 婷婷五月天影视网址| 激情com| 五月婷av| 五月丁香人妻| 五月丁香啪啪网| 色优久久| 色五月亚洲| 91色综合网站在线| 超碰99成人在线| 91久久九色| 91精品久久久久久久久久久久| 疯狂做受XXXX高潮A片| 婷婷综合av| 婷婷激情五月天激情小说| 日本久碰| 狠狠干在线| 日韩在线视频网站| 色色综合无码| 欧美婷| 色婷婷社区| 日本九婷婷| www久久99| 思思热这里只有精品| 国产做爰视频免费播放| 激情精品久久| 99精品视频偷拍| 久去色色| 99热这里只有精品最新| 日本三级片片| 日本婷久久| 欧美狠狠草| 99久久综合精品五月天| 九九热婷婷| 激情综合五月| 99re久热| 激情久久久| av人人操| 337p大胆噜噜噜噜噜91Av| 天天干天天干天天干| 日韩五月婷婷久久| 大香网伊人久久综合| 五月色欧美| 狠狠操狠狠插| 国产伦亲子伦亲子视频观看 | 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 久久色9| 五月婷婷六月丁香综合视频在线| 99re热视频这里只精品5| 久99热| 丁香五月婷婷综合激情哟哟哟| 色情丁香五月婷婷精品| 日本欧美国产| 久久精品这里只有精品免费首页| 99视频啪啪| 五月天婷婷综合久久| 亚洲另类噜噜| 日日操夜夜骑| 九九热欧美| 五月色俺婷婷| 天天干夜晚夜操| 91碰操| 婷婷五月天激情网| 人人操人人添人人摸97| 天天免费成年人视频| enecarbon-materials.com污K127封锁请涟系@wip1688 | 日韩在线看AV| 丁香婷婷六月天| 国产99久9在线+|+传媒| 欧美婷婷精品激| 热99视频精品| 色五月综合网| 激情五月婷婷啪啪| 丁香婷婷五月六月天| 久9视频| 激情AV中文| 丁香婷婷色五月天| 国产做A爰片毛片A片美国| 婷婷五月丁香啪啪| 99视频在线观看网址| 婷婷五月天性色| 墨西哥毛片内射精| 99天堂网最新| 国产成人va在线| 色五月天网| 色色色综合网| 天天爽人人综合免费7799| 五月天最新网| 国产原创视频91九色| 久久免费精彩视频| 五月丁香婷婷中文| 六月色播| 五月丁香激情四射| 99热99久久| 天天操五月天| 丁香婷婷色五月激情综合| 六月婷婷天堂| 噜噜久| 丁香婷婷婷| 婷婷五月天美女视频| 91操人人操| 99色一| 99久久超级| 婷婷五月天成人综合网| 久久久91精品| 欧美日韩AAA| 碰碰碰碰碰99| 欧美婷婷精品激情| 午夜丁香六月婷| 亚洲无码99| 91久久九久久九久久九久久九久久 | 色婷婷成人做爰A片免费看网站| 第四色色六月色综合| 99热精品在线在线| www.日日日.com| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 香蕉五月婷婷| 成人免费va| 91视频久久久| 久久激情五月婷婷| 色 免费网站视频| 婷婷六月色| 色综合色综合色综合高潮| 免费无码毛片一区二区A片| 五月丁香婷婷人体| 色色色1网址| 91视频五月丁香| 在线中文字幕视频| 涩五月婷婷| 色五月婷婷天天操夜夜操| 91n啪啪| 色女人久久| 欧美精品99久久久| 91人在线观看| 无人精品在线视频| 操碰91| 欧美69久成人做爰视频| 婷婷五月丁香香蕉| 色婷婷欧美| 五月天色色激情综合| 丰满老熟妇BBBBB搡BBB| 影音先锋777xfplay色资源网站| 亚洲婷婷五月| 91精品久久久久久77777| 99亚洲大片精品永久在线观看| 色色色色色色色色色色色色色色,网站| 色5月丁香婷婷| 人人爽天天莫| 成人性生活免费观看。| 亚洲熟女色| 激情五月综合免费| 久久宗合影| 婷婷六月色| 丁香五月人妻| 中文字幕+乱码+中文字幕在线观看| 色逼综合网| 日韩在线视频中文字幕| 亚洲综合色丁香五月天| 丁香婷婷五月综合影院| 国产精品18久久久| 色噜噜狠狠色综合网| 五月激情综合五月| 色情五月婷| 婷婷色色亚洲| 日本片日本片祼观看网站在线看中文版网页在线看 | 99热的无码| 婷婷五月天久久久| 99爱视频在线免费观看| 色呦呦美女| 清纯唯美 激情四射| 日韩高清成人| 久久婷婷五月天亚洲欧美| 99碰碰| se婷97| 国产欧美熟妇另类久久久| 婷婷五月丁香色综合| www.久久66| 丁香无月在线观看| 五月天丁香婷婷社区| 又大又粗九一在线| 久久精品99久久久久久| 亚洲岛国电影| 久久婷婷啪啪视频| 1区2区视频| 最新激情五月天| 婷婷午夜丁香| 亚洲无码猫咪| 无码激情AAAAA片-区区| 九九人人操| 五月丁香六月激情在线| m色激情网| 67194成I人在线观看线路1| 久久99草五月婷婷| 熟女少妇内射日韩亚洲| 五月婷丁香| 五月天婷婷綜合院| 狠狠色综合网站久久久久| 五月丁香激情综合六月涩涩爱| 另类图片天天影视在线观看| 中文AV在线观看| 日本高清不卡免费一区二区三区| 69精品人人人人| 99热只有这里有精品| 在线成人网址| 大香婷婷| 国产精品成人网站| www.1024久久| 国产AV网页| 丁香五月 性爱| 亚洲精品a成人在线播放| 双性美人被调教到喷水A片| 丁香五月欧美| 大香蕉五月天婷婷| 这里只有精品视频在线| 色99在线视频| 99热这里全都是精品| 久久九九网| 色五月丁香五月| 99re热在线视频| 色丁香久久| 97色色婷婷| 超碰碰碰碰| 色99在线视频| 99热在线观看| 五月婷婷综合网| 天天爽天天| 激情六月天| 无码人妻丰满熟妇奶水区码| 国产精品涩涩涩视频网站| 白人荫道BBWBBB大荫道| 亚洲字幕AV一区二区三区四区| 欧美顶级少妇做爰HD| 成人免费黄色短视频| 婷婷五月丁香基| 久草婷妨| 久七香蕉| 色激情综合| 开心五月激情| 五月天性色| 无码色色| 在线成人视频免费| 色色色色五月| 三男玩一女三A片| 大香蕉久久综合网| 91九九精品| 国产ava| 最新日本A片| 白天AV月月| 色色网站在线| 操久久网| 成人做爰A片免费看视频| 婷婷影院A成人| 婷婷久久在线| 五月婷婷色色色| 狠狠久久婷五月综合色| 色日本网| 高清视频一区| 亚洲精品V天堂中文字幕 | www五月天激情com| 色五月丁香婷婷久草| 五月激情婷婷在线| 国产精产国品一二三在观看| www.99久久久久99| 欧美日韩91| 涩涩网五月天| 久久性刺激| 大地9中文在线观看免费高清| 91人人爱| 人妻人人操| yazhouzonghesese| 久久人人九| 成人无码髙潮喷水A片| 综合婷| 熟女激情网| 亚洲欧美一区二区三区爱爱动图| 伊人干综合| 成人免费黄色短视频| 精品99在线看| 99这里只有精品在线| 思思99热| 精品欧美一区二区三区久久久| 五月天婷婷色情| 日本人妻丁香婷婷久久寝取熟女五月| 午夜激情五月天| 色五月天在线观看| 超碰A V在线| 欧美色色色色色色色色色色影视| 伊人婷婷五月天| 欧美性猛交99久久久久99按摩| 538任你爽视频不一样的| 狠狠色丁婷婷日日,伊人激情综合网| 79精品视频在线观看,| 99久久99九九99九九九| 熟美女麻豆| 五月色无码| 精品婷婷| 成人在线高清| www.91有码.com| 色婷婷综合网站| 国产性爱色| 久久只这里有精品| 99这里都是精品6| 97久久久免费福利网址| 一级A片天天操夜夜操| 天天干天干| 国产91九色| 五月丁香花激情综合网| 色999亚洲人成色| 国产精品成人AV在线| 色五狠狠| 九九日伊人| 欧美欧盟性爱网| 欧美大香蕉视频| 色香蕉精品五夜婷| 五月天色婷婷网| 久久全色| 六月婷婷综合网2| 99视频日韩| 国产Va视频| 久久丁香| 丁香五月中文字幕| 中文字幕成人影视| 久啪欧美| 五月婷亚洲精品| 七七色综合| 午夜激情五月| 五月激情丁香啪啪| 夜夜骑日日夜夜| 内射爽无广熟女亚洲| 涩涩涩,com| 激情五月婷婷视频一区二区三区| 99色干| 久久色天堂| 激情五月天综合网| 99热综合在线| 99男人天堂| 大香蕉99热| 庭庭久久内射| 色色色国产| 丁香九月婷| 丁香婷婷久久| 97亚洲色 torrent magnet| 五月婷婷激情综合网| 操人91| 96丁香六月婷婷蜜桃综合久久| 中文字幕AV在线播放| 91丨九色丨大屁股| 丁香六月开心| 五月天色综合| 丁香六月成人网| 久久se 综合网 | 午夜性爱影视一区77| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 狠狠色性| 91干婷婷| 色色色色av色色色色| 日韩美女在线视频19| 亚洲午夜一区二区| 亭亭色色五月天| 五月丁香综合啪啪| 日韩激情人伦人| 激情综合九| 99视频只有精品| 丁香五月婷婷亚洲综合精品| 五月综合激情网| 激情合网婷婷| 色色97丁香婷婷五月天| 人人操AV| 超碰av在线| 做爰丰满少妇1313| 可以免费看AV网站| 大香蕉九九热| 婷婷操逼| 国产一二三四五六七八视频| www.yw色| 97人人超| 99视频这里有精品免费观看| 天天日夜夜欢| 九九成人视频| 79色色色色| 中文无码婷婷| 538在线精品| 丁香五月婷婷在线| se99高清无码| 伊人大香蕉毛片| 亚洲成人影视在线观看| 六月丁香婷啪射| 九月丁香欧美综合| 天天干天天干天天干| 色性五月天| 丁香五月婷婷黑人妻黄色电影院| 国精产品一区一区三区免费视频 | 色五月色图| 婷婷五月天xxx| 日韩无码人妻一区二区| 亚洲午夜av| 99热a片免| VA婷婷| 色色婷婷婷丁香五月天| 99自拍视频| 丁香婷婷六月| 美女婷婷六月色| 影音先锋91| 亚洲日韩成人三级av| 五月婷婷人人人操| 丁香五月,激情五月,深爱五月| 99 re视频一区| 综合在线观看99| 色婷婷六月| 99热这里只有精品8| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 五月天 婷 欧美亚洲| 美女婷婷六月色| 婷婷五月色综合| 真实的国产乱XXXX在线91| 91狠狠色丁香婷婷综合久久精品| 九九精品视频在线观看| 美女va| 9l视频自拍9l视频自拍九色学生| 1024操逼| 亚洲色色色| 狠狠爱婷婷爱| 播四月婷婷六月丁香| 深爱开心激情网| 五月丁香狠狠爱| 狠狠干在线| 97成人丁香| 538在线精品| 99久热| 国产精品色婷婷99久久精品| 综合五月天婷婷色| 五月丁香六月日逼| 99自拍视频在线观看| 殴美日韩成人| 亚洲成人精品三区| 色婷婷六月| 日日干日日| 综合色色色| 欧美三级欧美一级| 开心五月婷婷| 99A片| 色五月婷婷内射| 婷婷狠狠五月综合| 激情五月天之六月婷婷| 婷婷五月天激情四射| 婷婷伊人综合中文字幕| 在线不卡中文字幕| 久久sp免费视频| WWW、日本色丁香、co m| 亚洲六月综合激情久久下卡| 欧美色综合天天久久综合精品 | 99热| 99热成人| 五月天激情综合| rr天天操| 五月天婷婷亚洲| 色色色色av色色色色| 丁香五月婷婷色| 亚洲色婷婷视频| 六月婷婷国产| 天堂AV在线看| 洗浴中心操B视频| 久久激情五月天| 天天橾夜夜爽| 这里只有精品在线观看视频| 激情内射p| 无套内射极品大美女| 五月天婷婷色色网| 99这里只有精品视频免费| 丁香婷婷网| 色色五月婷| 亭亭丁香aV| 99视频地址| 丁香激情六月天婷婷| 天天天摸夜夜夜玩| 久久婷婷综合五月趴| 日韩啊啊啊| 五月婷婷深深爱| 狠狠色丁香| 久热无码| 狠狠色 综合色区| 99操网站| 六月婷色| 91久久久久久| 激情99。| 丁香五月网在线观看| 日日综合网| 久久 婷婷 五月天| 婷婷五月婷婷| 成人αV视频免费观看| 日韩有码一区| 婷婷久久性爱| 国产精品久久久99视频| 内射丰满人妻| 九九热视频精品| A片一曲| 婷婷五月天福利| 婷婷五月精品| 亚洲激情婷婷| 5月丁香综合网| 久久ab| 另类天堂| 五月天开心色色网| 亚洲婷婷五月| 天天日综合网射| 九九色综合视频| www.激情| 色色欧美。| 久久久欧美精品sm网站| 色丁香五月婷婷婷| 五月天久久丁香| 人妻人人操| 影音先锋自拍网| 五月婷啪啪| 99热这里只有精品69| 婷婷五月天激情电影| 三人荫蒂添的好舒服A片| www亚洲无码| WWW色综合| 色五月丁香婷婷| 9久久精品| 99婷婷色| 91九色精品熟女内射| 中国激情网| 五月天综合久久| 玖色色综合| xx综合网| 狼人婷婷久久| 亚洲欧美综合7777色亭亭| 操99| 丁香色五月天| 99热成人| 六月婷婷综合激情| 青青草日本亚洲| 激情综合婷婷| 月丁香久久久| 五月激情综合激情五月| 99热天堂| 大鸡巴伊人网| 婷婷色五月天第7色| 欧美五月婷婷| 亚洲黄色操逼| 青青夜夜狠狠夜夜狠狠| 97五月天| 一本到不卡高清DVD| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 婷婷综合网性| 婷婷综合在线观看视频| 激情綜合W W W,激情五月天| 色九月综合网| 五月婷婷色情| www.99色| 香蕉综合在线| 99只有这里有精品在线视频| 中文字幕婷婷9月天| 五月天五月色婷婷综合| 亚洲啪啪视频| 日韩无码人妻一区二区| 亭亭五月激情亚洲在线| 99激情视频| 26uuu青青| 影音先锋四区| 在线观看亚洲AV| 啪到高潮激情丁香五月| 尤物一区二区| 色七色九九| 另类视频五月天| 色婷婷香蕉| 日本久热| 丁香六月婷婷综合欧美| 婷婷六月综合激情| 热久免费视频9| 久香草视频在线观看| 国产AV一区二区三区最新精品| 婷婷五月天堂网| 99re这里| 99久久99九九九99九他书对| 久超超碰| 亚洲成人av在线| 色色狼人综合| 丁香婷婷五月综合影院| 婷婷色片| 超级碰碰碰97免费| 五月丁香六月婷| 色九月国产| 五月婷婷综合网| 国产午夜精品一区二区| 九九精品亚洲| 色五月激情综合| 精品在线网站| 婷婷五月天色色| 丁香六月婷婷综合| 六月丁香五月婷婷首页|