欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

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
返回資訊列表
亚洲无码影音| 2020久久婷婷五月| 成人丁香婷婷| 思思re99视频在线观看| 丁香六月婷婷综合欧美| 99激情| 日熟女| 色吧综合网| 无月播播激情在线观看视频| 丁香婷婷六月天| 色色综合院| 激情五月综合婷婷| 狼友视频在线观看18| 99re99热| 天天婷婷综合| 五月婷婷激情刺激| 国产肥白大熟妇BBBB视频| 女性自慰系列第五页| 香蕉久日夜| 色五月超碰| 久久香蕉婷婷五月天| 亚洲成人网站在线播放| 另类婷婷丁香| 在线播放中文字幕| 五月丁香六月婷婷久久肏| 久9热| 久久五月激情网| 9191avse| 影音先锋色婷婷| 97超级免费无码| 色五月在线播放| 97色色色| 91超碰在线观看| 精品国产va久久久| 五月丁香在线综合| 丁香五月激情在线| 丁香五月另类小说| 五月丁香六月成人| 伊人色综合网| 五月停停色色丁香| 激情五月丁香五月| 亚洲AV免费在线| 五月天综合在线| 天天透天天干| 六月丁香激情| 久操干| 久草丁香婷婷五月天婷| 成人五月天丁香婷| 26uuu视频欧美| 色五月综合激情| 国产肏屄大片| 日本片日本片祼观看网站在线看中文版网页在线看 | 日韩爱操视频| 婷婷六月天激情| 丁香五月婷婷色| 青草热视频这里只有精品| 狠狠干2007| 色婷婷丁香五月天在线视频| 国产精品久久久60086| 日韩成人五月天| 综合激情开心五月| 婷婷开心激情综合五月天| 第四色婷婷最爱| 五月亚洲激情| 婷婷射丁香| 色欲色香伊人| 日韩久热| 99久久九九视频| 国产精品久久久久9999小说| 青青操日本摸摸看看| www.韩日视频| 丁香六月婷婷综合激情欧美| 丁香六月天婷婷色| 日本色婷婷| 99热欧美精品| 热99精品视频五月| 激情欧美婷五月| 丁香六月色情| 丁香五月婷婷香| 日本色五月| 美国十月色婷婷在线观看| 久久久WWW| 大香蕉五月天婷婷| 国产综合丁香五月天| 丁香天堂夜| 99资源在线视频| 大香蕉久操| WWW色综合| 色久五月| 99热官网精品在线| 亚洲永远av在线播放| 五月香蕉婷婷| 影音先锋 91工厂| 久久性爱视频这里只有精品| 五月婷婷片| 五月天激情色色| 操97在线观看| 色色色色热热| 色噜噜五月天| 黄色片久久| 五月婷综合| 人人操97| 99re视频精品| 成人片黄网站色大片免费毛片| 99视频综合| 午夜日韩久久久网站| 99热免费在线| 狠爱婷色| wwwC0maV五月花| 99九九视频| 成人无码精品1区2区3区免费看| 超碰无码老师| 爱草视频在线观看| 99热这里有精力| 婷婷色色欧美综合网| 哇嘎成人久久| www久热com| 99干视频| 婷婷综合在线视频| 天天干天天操天天上| 99这里有精品| 五月婷婷婷色| 婷婷六月综合在线| 天天综合网站| 亚洲啪视频| 天天综合亚洲综合| 国产乱人偷精品人妻A片| 九九热在线视频观看免费10| 开心五月婷婷99| 中文字幕婷婷| AV成人在线播放| 九九热思思热| 精品香蕉99久久久久网站| 性色av大香综合| 激情综合网亚洲色图| AV在线免费网站| 日本在线观看aaa 99| 婷婷五月成人有| 丁香五月偷拍| 最新日韩久热免费视频看看| 婷婷五月天黄色小说| 免费观看的av| 狠狠色丁香综合| 色噜噜97视频在线观看| 人人操人人爽成人AV| 99热精这里只有精品| 99人人干| 色播综合| 久久久久人妻| caobi四区| 五月天激情小说| 偷拍九九五月丁香婷婷| 精品无吗va视频免费观看| 亚洲亚洲人成综合网络| 五月丁香拍拍激情综合| 国产亚洲成AV人片在线观黄桃| 九九伊人网| 99热这里只有精品8| 另类丁香五月天区图| 久久五月天综合视频网站| 综激情网| 久er免费视频| 人妻久久久久久| 婷婷五月激情网| 亚洲乱码在线观看| 欧美久久婷婷| www.五月丁香| 狠狠 婷婷| 激情婷婷| 六月天无码网址| 欧美丰满熟妇BBB久久久| 99色在线视频观看| 亚洲欧洲中文日韩久久AV乱码| www.99热日韩.com| 亚洲V国产V欧美V久久久久久| 激情综合青草| 性一交一乱一交A片久| 天天色情站| 人妻内射视频| 久久亚洲网| 久久九九综合| 丁香5月婷婷| 日韩综合成人| 丁香六月婷婷色XXXXX| 婷婷五月激情综合啪啪| 婷婷午夜丁香| 婷婷丁香五月精品| 一级韩国产精品毛| 东京热伊人| 久久99热这里只有| 狠狠狠狠狠狠草| 精品人妻一区二区三区四区不卡在| 狠狠色九月| 99国产精品久久久久久久久久久 | 色五月天在线| 人操人人| 五月婷婷色| 国产Va视频| 九九九九精品精| 丁香五月激情综合啪啪| 操九色| 91操网| 婷婷伊在线| 久久大香蕉丁香| 五月天激情啪啪| 成人在线高清| 噜噜在线| 久久久久久久人妻| 思思99精品视频在线观看| 丰满人妻妇伦又伦精品国产| 任你操精品免费| 婷婷五月中文在线| 岛国午夜视频| 欧美性爱五月天| 五月天激情网页| 碰久久精品w| 婷婷涩涩五月天| 激情久久四色| 99日精品视频| 成人草榴视频| 五月天婷婷在线AN| 五月婷婷福利| 日日天天天| 依人大香蕉在钱1| 色噜噜狠狠色综无码久久合欧美| 狠狠色狠狠色综合日日91| 欧美熟妇一区二区三区| 亚洲狠狠色丁香婷婷综合久久| 久久精品人妻| 天天综合色综合| 大香蕉伊在| 99这里| 五月婷婷激情综合视频| 久久这里只有精品07| 天天色五月婷婷91久久久久久久| 色综合久久888| 亚洲激情综合免费| 色欲操| 久久婷婷五月综合一| 色丁香五月婷婷| 婷婷丁香五月天色区| 日本97久久久精品| 新激情婷婷| 丁香五月自拍| 丁香五月偷拍| 五月婷婷综合精品| 99re在线观看视频| 久久性操| 色天堂A| 五月桃花网综合| 激情久久久久久| 欧美va欧美va差| 人妻射精AV| 亚洲色五月婷婷| 伊人99热| 婷婷五月天激情四射| 丁香六月无码播放| 久久在线人妻| 性爱电影科技贸易有限公司| 日本女天天爽| ww亚洲ww在线观看| 色婷婷丁香五月| 亚洲色五月婷婷| 国产偷人爽久久久久久老妇APP| 狼人婷婷久久| 精品人妻在线| 天天色噜| 九九99久久| 视频这里只有精品16| 香蕉综合在线| 日韩黄黄| 日本一级黄色电影| 五月丁香婷婷在线| 99在线精品视频| 精品自拍99| 亚洲亚洲人成综合网络| 婷婷久久综合| 操人91| 激情亚洲网| 99丁香五月婷| 婷婷丁香九月| 欧美六月| 六月色色| 丁香五月激情综合| 开心激情婷婷| 国产精品日本一区二区在线播放| 国产精品久久欧美久久一区| 五月天丁香色色| 国产高潮A片羞羞视频涩涩| 九九热这里| 香蕉久久国产AV一区二区| 天天射影院| 久久538| 日日.c| 天天激情站| 婷婷开心久久| 九九热视频这里只有精品| 激情网婷婷婷| 天天日 天天草| 噜噜色婷婷| 国产婷婷五月天| 婷婷六月视频| 五月婷婷在线观看黄| 欧美成人色婷婷| 五月第四色| 激情五月天激情小说| 欧美色色网| 99热这里只有精品最新地址获取| 天天日夜夜曹| 婷婷色在线观看| 亚洲热视频在线| 这里只有精品免费视频| 99激情视频| 少妇真实被内射视频三四区| 欧美五月婷婷综合| 激情99| 超碰在线人妻| 99热在线免费观看精品| 五月丁香婷婷激情视频| 久久人人九九| 日本精品久久久久中文字幕| 热久久这里只有三级视频| 激情综合另类| 爱射综合| 噜噜噜噜噜色| 色播综合| 久久五月婷综合| 国产成人亚洲综合亚洲| 欧美久热| 国产成人99久久亚洲综合精品| 五月丁香激情综合久久| 337p大胆噜噜噜噜噜91Av| 久久婷婷午夜| 1024手机在线观看看片_日韩精品| 美日韩成人| 色婷婷五月天天天做| 激情五月天色婷婷| 99热这里只有精品3| 男同91| 4399伦理午夜| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 色墦五月丁香| 久草五月婷| 二色av| 天天射天天射一道本日本社区 | 狠狠草网| 激情纯色婷婷五月天在线不卡视频| 天天摸天天日天天舔| 综合五月丁香六月婷婷| 国产69精品久久久久999小说| 婷婷色片| 日日操日日射| 综合色五月| av婷婷丁香| 久婷婷| 天天日夜夜操五月| 97狠狠色| 99碰在线视频| 五月婷婷免费在线观看| 婷婷精品免费久久| 玖玖激情网| 丁香色情五月天| 26uuu精品国产| 久草婷婷| 中文字幕,综合,91| 2025年最新亚洲在线欧美| 99日本黄站| 狠狠爱深色婷婷综合| 亚洲成人高清在线| 噜噜色婷婷| 色播五月天激情| 97婷婷久久丁香| 狠狠色婷婷7| 久久九九国产精品怡红院| 激情丁香五月婷婷| 天天综合情| 色色色色色色色色网站| 久久中文网| 97操操操| 亚洲无码成人| 久久久久久久8| 亚洲 五月 婷婷 成人| 丁香五月在线观看| 999热在线视频| 91精品综合久久久久久五月丁香 | 美女黄频aⅴ视频| 久久久五月婷婷| 丁香五月色情| 中美月韩免费A片| 色婷婷丁香五月综合| 丁香五月av| 伊人网啪啪| 日本社区五月天激情| 韩国真做片在线观看| 婷婷99中文字幕| 色香欲综合| 极骚大香蕉伊人| 99久久国产宗和精品1上映 | 婷婷操久久| 五月激情久久| 怡红院视频| 亚洲精品V天堂中文字幕| www.天天干.com| 久久五月激情综合| 狠狠爱激情网| 粉嫩av蜜桃av蜜臀av| 婷婷色六月| 欧洲免费视频色| 97啪在线观看视频| 这里只有精品69| 丰满少妇乱A片无码| 五月天亚洲最大成人| www.五月天婷婷| 久综合网| 成人无码精品1区2区3区免费看| 99热这里在线精品| 九九成人视频| 九九操综合网| 色婷婷五月丁香色| 日本色综合| 色色色五月天激情资源| 丁香五月婷婷网| 综合五月丁香97| 丁香五月婷婷六月丁香| 蜜臀av粉嫩av懂色av| 亚洲操操操| 丁香蜜臀黄色婷婷五月天| 亚洲激情av| 婷婷久久午夜网| 激情五月久久| 久久99热 这里有精品| 国产成人精品一区二区三区视频| 久热这里精品免费| 色玖玖网| 久热99| 在线视频色五月| 狠狠干综合| 久久五月丁香综合17C| 九九九激情综合| 青草激情在线| 婷婷色在线播放| 日本久久婷| 久久综合99| 超碰在线99| 色婷婷色情| BlACKEDRAW视频一区二区| 人人干av| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 9久热| 激情深爱五月天| 狠狠插狠狠| 五月五月婷婷| 天天日天天操心| 九九久久99| 爆乳熟女-区二区三区| 五月婷婷偷拍| 丁香五月天堂网| 久久婷婷亚洲五月天| 久久玖玖99| 久久久27操| 婷婷激情中文综合| 丁香五月天堂婷婷| 成人视频一区| 亚洲十月婷婷综合| 99精品视频偷拍| 丁香五月色情| 五月婷婷天天| 色色色色色级无码| 中文字幕成人影视| 色婷婷狠狠| 久久婷婷五月天亚洲欧美| 超碰99久久| 日日干夜夜干| 欧美日韩成人在线网站| 色播五月天天| 婷婷五月综合网| 伊人综合网站| 99热e| 五月丁香人人婷婷在线观看| 91九色精品女同系列| 中文成人在线| 婷婷永久在线| 五月婷婷 激情五月| 中文字幕成人| 99免费在线视频| 九九热最新| 新激情五月天天在线网| 99热这里只有精品50| 五月综合激情| 婷婷WWW久久| 99性爱| 色综合伊人网| 亚洲VA在线| 五月婷婷色色| 91打屁股视频网站| 五月婷婷婷色| 国产真实乱对白精彩| 五月丁香啪啪婷婷| 久久久免费精彩视频| 管管補管管紱| 99热欧美在线观看| 欧美综合123区| 狠狠婷婷日韩| 精品香蕉99久久久久网站 | Aα在线免费观看| 99性爱视频| 另类图片色五月| 久久久久丁香婷婷五月天| 天天色五月| 人妻av在线| 婷婷五月网图片区| 色吊操色妞| 欧美性猛交99久久久久99按摩| www久| 婷婷久久图片| 91精品91久久久久77777| 五月婷婷啪啪| 综合色五月| 亚洲视频操| 99热6这里只有精品| 人人色AV| 婷婷五月天激情小说网站| 激情网站五月| 99精品在线| 久久性刺激| 四射综合网| 色婷婷狠狠18yy| 深夜婷婷 丁香| AA片在线观看视频在线播放| 国产精品色色| 免费无码毛片一区二区A片| 婷婷久久综合久| 超碰免费大香蕉| 狠狠干狠狠干| 91色色色18| 人妻少妇色综合| 舔色婷婷| 五月丁香好婷婷A片网| 99热在线看| 99re鈥哸鈥唙| 五月丁香六月| www婷婷| 久久五月综合| 久久99网站| 久操热线| 久久AV无码精品人妻系列试探| 色婷婷视频| 极品人妻VIDEOSSS人妻| 9久热精品在线视频| 一二线视频 另类| 超碰亚洲欧美| 亚洲视频在线观看区| 久热精彩视频98| 91九色PORNY中文啦| 免费成人中文字幕| 色热久| 久久九九网| av婷婷丁香 六月| 婷婷深爱色五月| 99热这里只有精品13| 色色aⅤ網| 久热A| 久久五月丁香| 五月婷婷激情久久| 久久A极片| 婷婷香蕉香| 密臀av无码人妻精品| 五月丁香婷婷综合视频| 人人草公开操| 天堂草在线观| 日韩人妻无码精品| 国产乱子轮XXX农村| 色五月丁香A欧美com| 日本在线wwww| 99热精品在线观看| 性色99| 91丨九色丨熟女| 五月天激情视频| 亚洲丁香婷婷| 婷婷在线综合| 91啪级电影| 亚洲视色| 久久人妻精品| 97碰碰草| 丁香六月综合激情| va亚洲中文在线| 97操碰视频| 无码色| 天天透天天干| 青青热久精品视频在线观看| 五月丁花六月丁香综合| 久久99精品久久只有精品| 国产成人精品一区二三区熟女在线 | 五月天色色色| A久网| 五月婷婷啪啪| 亚洲图色五月天| 亚洲色啪| 色播五月网| 大香蕉520| 9久久网| 婷婷亚洲在线| 五月婷婷六月丁香| 五月丁香婷爱在线| 成人片在线播放| 色五月色开心开心五月| 久久人妻久久久久| 激情久久久久久久久| 色爆五月| 精品视频这里只有精品| 国产在这里只有精品| 色99色| 中文字幕AV网址| 激情小说之五月| 婷久久| 丝雨一区二区| 久久黄色免费视频| 亚洲综合1024| 久久婷婷综合色丁香| www.精品99| 色综合久久中文| 狠狠噪| 99这里的视频都是精品| 91九色视频| 碰碰碰97免费精彩视频| 五月天婷爱综合| jiZZdr| 久久精品99久久| 久热视频这里只有精品| 丰满老熟妇BBBBB搡BBB| 色播五月丁香| 五月丁香好婷婷A片网| 91九九热| 日本熟女内射| 91久久精品国产91性色TV| 日本99热| 九月色婷婷| 香蕉乱插| 婷婷丁香五月天激情| 色综合激情图区| 情五月亚洲婷婷| 五月激情小说| 日本熟女视频一区二区| 日韩成人中文字幕| 超碰人人超碰| caop在线视频| 狠狠丁香| 婷婷丁香久久| 欧美一级色| 亚洲综合婷婷| 超碰人人射| 97久久人人操| 超碰在线免费| 99热这里只有精品1025| 极品色丁香| 欧洲一区二区| 五月丁香色| 色综合久久天天综合网| 五月丁香色色| 97色色色色色| 99 热| 人妻久久久| 日韩黄黄| 欧美性生交XXXXX无码小说| 激情伊人五月婷婷久久| 日本色色影片| 色五婷婷| 五月婷婷六月丁香首页| 99免费视频| 色综合丁香婷婷| 亚洲成人AV在线观看| 九九热99视频| 色婷婷电影| 中文字幕在线免费看线人| 大香蕉久久伊人婷婷五月丁香| 97色婷婷| 色综合色综合色综合高潮| 白人荫道BBWBBB大荫道| 这里只有免费的精品| 激情涩播| 五月天婷综合| 99久久精彩视频。| 国产又爽又猛又粗的视频A片 | 99久久婷婷| 天天日夜夜夜操操操操| 亚洲精品**不卡在线播he| 天天天久久人人人合| 99热丁香五月| 夜夜干 夜夜操| 婷婷五月天AV激情| 天色色综合网| ww久久| 久久99最新| OYIWbGcPu8H| 五月丁香六月婷婷激情视频在线观看免费| 久久久久久99精品无码| 五月婷婷丁香五月| 天天成人综合视频| 九九综舍久久| 91丨九色丨东北熟女| 国精产品一区二区三区| 日本色天堂| 欧美性爱五月天| 久久这里有| 激情伊人| 91操黄| 成人亚洲精品| 26uuu91| 99热综合在线| 麻豆AV一区二区三区| 丰满熟女人妻一区二区三| 色色色色色色色色五月先| 欧美日韩中文国产一区发布| 丁香六月欧美| 天天爱天天做天天舔| 超级碰碰视频无码| 丁香五月久久| 色色色色色网| 日日干夜夜撸夜夜骑| 99热高清在线| 风流少妇A片一区二区蜜桃| 99久久五月婷婷| 丁香五月在线伊人| 91视频久久久| 蜜臀AV在线观看| 日本狠狠干| 丁香五月老师| 女婷久久| 久久精品噜噜噜成人A∨色欲| 99精品视频免费观看| 手机免费福利视频| 99热www.| 超碰97人人操| 一区二区三区四区牛| 色五月激情网| 97视频91| 色婷婷五月天视频网站| 天天激情夜夜干| 91视频精品99| 二区成人视频| 五月丁香婷婷成人网| 大香蕉九九| www天天色天天射| 夜夜操夜夜姧| 视频综合网| AV色婷婷| 91趴趴| 91在线操逼视频| 日本三级大片| 任你擦免费视频| 涩涩激情五月婷婷| 91紱請| 丁香五月久久| 五月天精品视频| 五月丁香网站| 丁香五月在线| 蜜乳中文字| 天天模,夜夜模夜夜爽| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 色99色| 激情五月,激情综合网| 26uuu国产精品| 婷婷激情丁香五月婷婷激情丁香五月婷婷| 色五月婷婷操逼| WWW久| 9 9热这里有精品| 雪千夏麻豆| 任你躁XXXXX麻豆精品| 狠狠穞A片一區二區三區| 婷婷性爱| 国产无套精品一区二区| 综合久久9| 婷婷五月天Av| 欧美精产国品一二三区| 婷婷娌伦网| 天天激情欧美美女| 激情五月婷婷综合| 久久这里都是精品| 思思热99热| 亚洲va欧美va天堂v国产综合| 五月婷婷六月丁香在线视频| 国产精品 的国产| 亚洲第一色色色| 亚洲精品白浆高清久久久久久| av性爱在线| 激情五月婷黄版| 婷婷六月激情综合| 色爱99| 色欧美日| 九九色院| 久久停停超碰| 99re66热这里只有精品| 色婷婷影院| 色婷婷中文字母五月丁香| 丁香五月婷婷久久久| 26uuu.| 五月天婷婷激情小说| 五月丁香AV、伊人业余、性色熟妇| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 三人荫蒂添的好舒服A片| 国产精品久久久久久久久久| 亚洲网综合在线| 天天色凹凸| 超碰国产AV| 伊人久久大香线蕉av一区| 激情综合色图| 六月色日韩| 亚洲女婷婷五月基地综合久久久| 五月丁香婷庭在线| 六月婷婷中文字幕| 久久久久久久97| 思思热在线观看| 亚洲V国产V欧美V久久久久久| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 激情丁香淫荡婷婷| 五月婷婷视频28| www婷婷| 婷婷五月天av| 中文字幕日产A片在线看| 99人人爽| 日韩综合久久| 99热6这里只有精品6| 天天碰天天插天天操| 婷婷播5月| 色99网| 午夜天堂一区人妻| 九九综合88| 丁香婷婷网| 五月天色在线| 色婷婷综合亚洲| 色婷婷电影网| 丁香六月综合| 婷婷永久在线| 色小说五月婷婷| 色五月偷偷| 五月丁香啪| 免费看片操逼| 婷婷基地成人五月天| 狠色色狠网| 综合激情在线视频| 国产成人精品一区二区三区视频| 亚洲AV另类| 丁香五月激情宗合网| 久久久精久人妻| 九九99精品视频| 日韩成人不卡| 中文字幕在线不卡| 人妻尝试久久久久久久久久久久| 丁香五月色网| 一区二区成人电影免费播放| 色综合久久综合中文综合网| www,婷婷五月天777me,com| 香蕉婷婷色五月| 精品影院| 九色视频91| WWW五月| 国产午夜精品AV一区二区麻豆| 天天综合五月天| 夜夜天天久久婷婷| 91干视频| 欧美一黄一色一乱一伦| 婷婷五月天伊人在线| 天天澡天天狠天天天做| 校花娇喘呻吟校长陈若雪视频| 手机在线日韩视频中文字幕| 色综合综合色| 久久久免费精彩视频| 婷婷日本色| 五月激情婷婷色| 中文字幕在线不卡| 超碰A V在线| 国产精品五月丁香| 五月停亭六月,六月停亭的英语| 99天堂在线观看免费视频| 男女99免费视频| 丁香婷婷视频在线| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 日日操夜夜操无码免费| 人人做人人看人人摸| 俺去也五月天| 天天色视频| 激情五月黄色| 丁香五月丐人妻| 精品久久9| 伊人久久大香天蕉亚洲特级| 激情婷婷另类| 久热九九| 丁香五月亚洲AV| 91婷婷色| 欧美乱码国产一级A片| 欧美成人精品一区二区| 大陆极品少妇内射AAAAAA| 久久久久久久久久8888| 丁香激情五月| 亚洲AV永久无码影院黑人 | 嫩草免费视频| 六月丁香综合999| 狠狠色噜噜狠狠狠888| 97碰| 丁香婷婷色| 五月丁香五月丁香五月丁香五月丁香91| 久久久久人妻精选| 狠狠噪| 99久久成人| 荫道BBWBBB高潮潮喷| 97亚洲色 torrent magnet| 丁香五月性爱| 日本片日本片祼观看网站在线看中文版网页在线看 | 美欧日韩国产成人在战| 偷拍九九五月丁香婷婷| 色色色综合色| 91综合在线观看首页| 久久久精品色| 六月婷婷日| 五月天婷婷爱| 色色丁香色五月| 五月色影院| 九九九九无码| 日日干日日| 色婷婷天堂| 成人 视频免费观看网站| 99精品国产在热久久婷婷| www.色婷婷| 香蕉婷婷色五月| 婷婷九月激情| 九九综合久久| 性综合网| 午夜不卡成人一区二区| 久久婷婷免费| 热久久99热欧美国产亚洲| 亚洲婷婷综合视频| 日日夜夜干| 色九月婷婷综合| 婷婷六月丁| 日操| 乱乱av| 99精品大片| 九九精品热播| av九九| 亚洲激情无码久久| 激情九月婷婷九月| 99热在线这里| 激情五月天综合网| 久久99综合| 久热这里这里有精品| 国产日产亚洲系列最新| 欧美3AaAa大片| 97人妻碰碰碰久久| 日本久久天堂| 日日色五月天| 91熟妇大香蕉| 99热大香蕉| 99ER热精品视频| 欧美婷婷色五月| 五月婷婷婷综合网| 思思热这里只有精品| 五月丁婷婷| 亚洲国产网站| 99精品在线| 开心日韩丁香婷婷五月| 狠狠综合色网| 色色色com| 天天插天天| 97色操| 亚洲成人综合在线| 丁香色综合| 九九热10| 51精品国自产在线| 久久这里有精品| 五月婷婷在线丁香| 日B日潘金莲BB| 激情婷婷在线中文字幕| 九九热在线视频| 亚美欧色影院| 丁香九月激情| 亚洲六月综合激情久久下卡| 日本在线视频播放91| 六月色日韩| 97人妻人人| 久久a热| 激情五月婷婷丁香| 亚洲丁香婷婷五月天综合色| 丁香九色不卡aaa | 色狠狠综合| 国产精品男人AV不卡| 亚洲精品成人| 色色色色网色色网色色| 亚洲综合久| 婷婷九月丁香中文| 99热这里只有精品4| 成人五月天视频播放| 丁香五月在线人妻| 国产色香蕉精品五夜婷| 婷婷色婷婷| 99亚洲视频| 日韩欧美四五区| 亚洲 视频 导航 一区| 婷婷色色综合| 色五月丁香婷婷| 五月亭亭直播| 久久A热| 操99| 中文在线成人| 婷婷香草网| 亚洲AVDVD| 婷婷激情5月| 婷婷婷狠狠| 午夜性爱影视一区77| 色9999日韩国产| 五月综合激情久久| 国产精品美女| 色五月婷婷五月丁香五月激情五月视频| 久热婷婷| 日韩色色色99| 99热精品在线播放| 91精品电影18T| 久久婷婷热| 思思热99er在线视频| 亚洲激情av| 夜夜爽天天| 日本欧美成人片AAAA| 天天色天天干天天插| 疯狂做受XXXX高潮A片| 激情婷婷亚洲五月| 精品无码久久久久久久久| 5月婷婷6月丁香aV| 人妻无码视频网| 婷婷五月天亚洲图片| 色网五月婷婷| 五月天激情社区| 激情丁香五月综合| 99热这里只有精品9| 色色色色色五月丁香| 超碰在线免费| 开心五月婷婷激情| 色优久久| 婷婷五月精品中文字幕| 日韩久久日| 亚洲熟妇无码乱子AV电影| 999热在线视频| 337p大胆噜噜噜噜噜91Av| 五月天色婷婷av| 97碰精品| 五月精品| 国产xxxxx在线观看| 午夜天堂一区人妻| 岛国av电影网站| 超级碰碰碰碰视频| 五月丁香影视| 五月婷深深爱激情网| 日本三级片片| 久热欧美| 夜夜爽日日躁| 婷婷五月天毛片| 婷婷五月色播放| 五月丁香 啪啪啪| www.久久爱.c n| 九九热这里只有精品6| 五月天色婷婷视频| 久久久九九九 99| 婷色五月| 婷婷五月天激情影片| 色天堂97| 51精品国自产在线| 亚洲午夜一区二区| 五月婷婷久久综合| 九九激情| 99热综合| 激情六月丁| 欧美成人无码一区二区三区| 综合久久十| 婷婷激情社区| 丁香六月激情网C0W| 九九色图| 无语停婷丁香网| 99热一区| 激情五月丁香五月| 思思热思在线精品视频| 久xxxx| 国产看真人毛片爱做A片| 国产精品国产| 色五月五月丁香| 91尤物九色在线| 68热超碰在线| 99久久激情视频| 色婷视频| 激情综合五月.....| 91色涩| 999精品久久久久久久| 婷婷色中文字幕| 丁香六月婷婷综合| 丁香五月婷婷乱| 久热伊人| 99热超碰天堂网| 97人妻超级碰碰碰碰碰| 久久五月视频| 五月天婷婷色播综合在线| 色色色色网| xx综合网| 色99超碰| 丁香五月激情棕合| 激情综合女人网五月播播| 内射丰满人妻| 五月天啪啪啪| 日日.c| 九月丁香婷婷基地| 99久久久久久www| 入口五月婷婷六月香| 小视频一区| 综合网啪| 专区无日本视频高清8| 超级碰碰99| 久久婷综合| 26uuu91| 亚洲在线操| 五月丁香综合激情在线观看| 97干综合网| 成人啪啪色婷婷久| 色五月天 丁香| 青青草青青草五月天| 国产精品国产成人国产三级| 五月婷婷丁香在线| 96精品久久久久久久久| 久久久久丁香婷婷五月天| 久久婷婷亚洲五月天| 天天插轮理| 春色激情第四色| www。88热在线视频免费观看| 99热九九在线| 无码G高清天| 色爱综合网| 99精品福利视频| 婷婷五月丁香狠狠| 五月情丁香色| 狠狠夜夜五月丁香| 伊人五月婷婷| 丁香五月另类小说在线阅读| 电影《战争与艾拉》免费观看| 综合色播| 干亚洲天堂| 婷婷五月激情基地| 亚洲激情视频网| 99re这里有精品手机在线| 狠狠狠狠狠狠狠狠草| 五月丁香婷婷综合| 这里只有精品在线播放| 97综合在线| 天堂在线婷婷| 五月丁香六月激情狠狠| 亚洲六月婷婷| 九色1区视频在线| 激情婷婷五六月天| 成人网站在线观看视频| 超碰免费电影| 天天天添天天操| 综合色五月| 97碰碰在线观看视频| 色婷婷a三区麻| 成人av免费观看| 婷婷丁香九月| 人人摸人人摸| 婷婷五月丁香青青草在线| 色色色777| 99色中文| 玖玖99精品视频| 婷婷五月六月激情| 午夜天堂一区人妻| 成人看片网站| 色在线免费观看| 亚洲丁香婷婷五月天综合色| 79精品视频| 久久综合99综合| 7月婷婷六月丁香| 五月天激情四射网站| 99久久天堂婷婷| 襙逼网| 九九亚洲视频| 狠狠色丁香| 久久婷丁香五月| 超碰人人妻| 综合图区激情| 日本一级黄色片。| 五月丁香啪啪拍| 九九综合色| 伊人久久婷婷| 99re免费精品视频| pom538精品视频| 久久99网| 人妻中文字幕精品| 超碰熟女拍拍| 色婷婷播放| 五月婷色啪| 婷婷丁香无码专区| 色婷激情网| 牛色色碰| 婷婷五月天婷婷| 淫视馆av三区| 激情五月天www| 婷婷伊人综合| 五月天久久网站| 操比激情五月| 99精品性爱| 久久免费丁香| 色五月天丁香婷婷| WWW.久久久久久久| 狠狠爱婷婷爱| 人人澡玖玖一| 色婷婷久久| 久久欧洲久久| 91蜜桃婷婷狠狠久久综合9色| 草美女在线观看视频在线播放| 亚洲色久| 丁香五月综合在线播放| 日韩青青| 国产午夜一区二区三区| 91久久免费| 九伊人网| 操碰99| 99re思思热在线视频| 操碰91| 开心五月激情五月丁香五月婷婷| 色色色色色色色五月| 国产精品色婷婷AV综合色色| WWW99视频| 久久9视频欧美| 久久这里这里有精品免费视频| 国产精品人成A片一区二区| 成人狠狠成人狠狠成人狠狠成人狠狠 | 无码色| 91碰碰碰| 国外亚洲成AV人片在线观看| 中文国产五月天| 97AV人人插人人操| 超碰在线人人| 99热这里只有精品国产免费| 韩国中文字幕91| 99热网站| 久久激情视频| 中文字幕日产A片在线看| www.激情五月天com| av在线不卡播放| 黄网在线播放| 丁香六月婷婷综合网| 热婷婷av| 五月天久久婷婷| 五月丁香成人日| 丁香五月桃花在线激情综合| 国产精品视频免费看| 天天摸天天舔在线视频| 成人婷婷色综合| 久久激情天堂| 综合综合色色| 亚州第一黄网| www.99在线| 天天cha成人综合网| 日本毛片内射| 久99视频| 丁香婷婷视频| 婷婷综合在线| 99热在线中出| www.久久久.com| 婷婷丁香激情五月| 五月天狠狠色| 开心五月色婷婷综合开心网| 狠狠操狠狠| 亚洲狠狠狠色婷婷综合激情久久久|