欧美成人午夜精品久久久,国产?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
返回資訊列表
午夜国产精品AV在线播放| 婷婷丁香综合成人| 伊人青涩网| 久久久噜噜噜久久人妻| 人妻乱码久久久| 国内久久婷婷| 99热国产| 欧美99热| 99热只有| 丁香六月情| se99高清无码| 午夜婷婷久久 | 五月丁香婷婷激情影院欧美| 亚洲av| 思思热久热| 色五月婷婷av| 91色色色18| 精品一二三区久久AAA片| 天天干天干| 噜噜狠狠| 婷婷五月天综合激情| 依人大香蕉在钱1| 亚洲色五月婷婷| 99这里只有| 99热在线观看免费中文| 婷婷永久在线| 激情视频婷婷五月花| 亚洲无码性爱| 91919191919久久成人视频| enecarbon-materials.com污K127封锁请涟系@wip1688 | 亚洲啪啪网| 中文字幕在线免费看线人| 久久人人九| 久久机只有这里精品| 亚洲最大在线| 久久久婷婷婷| 大香蕉av在线| 激情五月婷婷丁香六月| 五月婷婷在线视频免费观看| 五月丁香婷婷综合在线| www久久99com| 久久激情综合| 婷婷 亚洲图片 丁香| 亚洲精品成人| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 色五婷婷| 色色COm| 色激情综合狠狠婷婷| 色色国产| 99热在线观看精品| 亚洲精品99| 丁香五月天色婷婷| 99亚洲视频| 爱草人视频| 亚洲色vA| 色色AV色色色东莞| 免费播放片大片| av狠狠操| 久久作爱| www久久99| 久激情网| 亚洲日本韩国| 99啪在线视频| 日本久久高清| 婷婷五月天激情综合| 2014天天爽| 丁香色色色| 婷婷九月综合| 狠狠擼综合| 成人视频九九| 久久婷婷五月综合色丁香| 五月丁香色婷| 色播五月综合网| 五月丁香好婷婷A片网| 99热这里有精品首页10| 97色干| 五月婷色| 成人超碰Av| 婷婷丁香人妻天天| 狠狠干综合| 人妻无码精品一区| 亚洲影院婷婷色| 五月色情婷婷开心五月天| 91精品无码| 91综合国免费久入| 国产高清av黄色看片| 丁香婷婷影院| 美妞av| 久久99久久99精品免视看婷婷| 五月婷人妻| 91小黄书网址在线观看| 大香蕉天堂| 人妻综合网| 久热这里只有| 久草婷婷视频| 99热久久最新地址| 日韩久久色| 99色在线| 婷婷色啪| 色色 亚洲| 五月天色综合| 中国无码av| 97色视频网| 大香蕉五月天婷婷| 噜噜精品| 无码激情AAAAA片-区区| 激情婷婷在线中文字幕| 久久人妻视步| 99热在线观看| 色色色综合网| 激情六月天婷婷| 色播婷婷五月天| 婷婷五月天激情小说| 五月做爱| 亚洲欧洲国产精品| 人人摸人人射| 天天色视频| 色婷婷成人久久| 五月丁香999| 亚洲 小说 欧美 激情 另类| 操操碰| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 综合网啪啪| 五月天激情婷婷| 高清成人综合| 99精品亚洲| www.夜夜操| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 婷婷伊人视婷婷婷| 天天操天爱综合| 欧美色九| 久久精品系列| 色婷婷小说网| 综合精品99| 五月丁香六月婷婷在线小说视频| 激情小说婷婷| 色色综合无码| www.五月天婷婷| 91操在线视频| 五月婷在线观看| 婷婷情色五月| 亚洲成人人人操| 亚洲黄色影视| 99久久久国产大片| AVDV久久| 安息电影在线观看完整版| 婷婷五月丁香超碰| 超碰色婷婷| 99精品久久久久久久婷婷久久| 五月婷丁香| 天天综合久久| 欧美三级欧美一级| 婷婷99| 超碰在线精品| 激情综合啪啪啪| 久久这里只有精品热在99| 天天肏天天舔AV| 99这里只有精品在线观看| 五月丁香亭亭| 大狠狠在线| 九九黄色网| 亭亭五月丁香综合欧美| 午夜成人片400| 久久婷婷激情五月天一区二区| 午夜爱爱网站| av九九| 中文字幕在线播放视频| 99小视频在线| 亚洲精品V天堂中文字幕| 国产成人网| 婷婷激情小说| 亚洲视频二区| 欧美精品XXXXBBBB| 九九中文色色| 99视频只有精品| 丁香五月激情综合久久| 色色无码| 久久er+| 97精品人人A片免费看| 99re久热只有精品6在线直播| 婷婷六月综合激情| 婷婷六月激情丁香| 麻豆精品| 色99视频| 99热a片免| 色99婷婷五月天| 999热这里只有精品| 色婷婷久久综合久色综| AA丁香综合激情| 四虎婷婷五月天| 久99| 成人超碰AV| 五月天婷婷色| 五月婷婷丁香在线| 99久热| 婷婷大香蕉| 蜜乳A√| 色情网综合| 五月天激情小说| 伊人狠狠色婷婷综合丁香一区| 看全色黄大色大片| 天天拍天天做视频| 天天操夜夜玩!| 久久六月婷婷| 99视频精品| 激情婷婷色小说| 亚洲无码性爱| 久久99精品视频| A A色色| 狠狠久久婷婷| 激情小说色五月| 九九性爱网| 色婷婷狠狠干| 色五月欧美| 狠狠色狠狠操| 91久久电影| 99爱欧美| 五月婷婷久久综合| 色色五月综合| 不卡在线视频| 色综合久| 九九色热| 五月婷婷九| 亚洲无码成人网| 婷婷五月激情在线| 国产精品18久久久| 丁香六月在线| 久久色9| 五月激情偷拍婷婷| 天天做综合| 人人综合91网| 开心五月激情网| 国色天香伊人狠狠色| 成人网在线视频| 嫩草极品| 国产毛片精品一区二区色欲黄A片 极品人妻VIDEOSSS人妻 | 淫视馆aV二区一区| 97精品自拍视频| 婷婷五月天天| 午夜不卡久久精品无码免费| 任你爽视频| 欧洲色| 天天模,夜夜模夜夜爽| 91精品国产99久久久久久天美| 亚洲视频一区| AA片在线观看视频在线播放| 国产精品18久久久| 婷婷五月天视频| 五月天激情综合| 五月婷在线视频免费播放| 久久er视频6| www,色婷婷| 激情色情五月天| 久久精品一区二区三区四区| 亚洲九九夜夜| 五月丁香婷婷六月| 亚洲国产99| 99碰网站| WWW,五月| 91精品综合久久久久久五月丁香| 伊人久久婷婷| 欧美日本免费一道免费视频 | 激情五月天开心网丁香无码| 五月丁香六月欧美综合| 开心五月色婷| 激情综合丁香五月| 天天爽天天爽| 热99在线| 成人精品视频99在线观看免费| 可以免费观看的av| 丁香五月天啪啪| 香蕉婷婷色五月| 99re6久热只有精品6在线直播| 天天爽天天草| 99热碰碰| 色综合五月天| 婷婷五月天天| 久久狠婷婷| 中文字幕+中文在线| 3DAV亚洲香蕉久久 一区二区| 日本三级99人妇网站| 激情婷婷丁香| 狠狠久综合| 99免费在线视频| 99精在线| 97在线精品| 六月婷婷色综合| 免费看欧美成人A片无码| 欧洲色区| 97人操| 日本在线视频播放91| 99啪| 五月天激情无码高清| 四色AVwww| 草五月| www天天色天天射| 亚洲成人五月| 丁香五月激情五月| 色婷狠狠| 婷婷丁香六月综合激情站| 久久五月激情| 99这里是精品| 超碰久热| 国产原创视频91九色| 26uuu丁香婷婷五月| 成人婷99最新| 久热精品视频| 99性视频| 久久久香港| 婷婷五月色情| 人妻av在线| 婷婷五月天伦理| 五月婷婷综合久久| 天天综合精品| 婷婷久久五月丁香| 天天撸天天干天天插| 激情99| 五月丁香影院| 亚洲熟女色| 99 这里只有精品| 玖玖婷婷五月天| 色999五月色| 六月婷婷日| 五月丁香手机在线| 色99自拍| 日本97久久久精品| 这里只有精品69| 久操婷婷| 蜜臀av粉嫩av懂色av| 五月婷婷综合网在线播放| 深爱开心激情| 99色嘟嘟精品网站| 激情五月婷婷伊人| 色婷婷六月| 吾爱AV导航| 婷婷六月爽| 色碰碰| 久久久五月天婷婷| 亚洲小说欧美激情| 久久综合婷婷| 天天色天天爽| 五月激情站| 六月婷婷视频| 另类综合国产| av中文在线| www.com.色色| 天天爽,夜夜爽| 99国产在线精品视频| 99久久久久| 婷婷五月天久久| 婷婷丁香无码专区| 操嫩逼电影| 国产毛片欧美毛片久久久| 五月丁香婷婷色色| 99re免费精品视频| 亚洲成人在线免费| 这里只有精品在线观看视频| 超碰成人免费| 婷婷五月天丁香| 综合性爱网| 婷婷天天色| 色九九九综合| 天天舔天天操| 日本WWW九九九| 可以看的AV网站| 日韩av在线播放综合网| 婷婷五月天在线观看第二页| 91久久九| 久9无码视频| 婷婷色五月大香蕉在线观看| 激情综合国产| 久久五月婷婷电影| 99色热| 成人短视频免费观看| 激情五月天www| 丁香六月婷婷色XXXX| 天天日狠狠| 国产真人做爰视频免费| 亚洲色vA| 亚洲黄色av网站| www,天天干| 伊人久热91网| www.91九色| 婷婷伊人网| 亚洲激情婷婷| 99热这里只有精品 搜| 天天久久婷婷| 日韩性视频| 久久九九综合| 日本强伦片中文字幕免费看| 婷婷五月婷| 九九精品亚洲| 丁香五月色| 五月天开心色情网| 热久69| 狼人久草| 欧洲亚洲免费视频区| 91爱操| 久久丁香五月婷婷激情综合网| 99无码| 婷婷激情五月天视频在线| 五月天婷婷涩涩| 色天堂A| 五月丁香怕怕综合| 久久久噜噜噜操操操| 超碰在线中文字幕| 五月永久激情| 色婷婷免费观看| 国产69久久久欧美黑人A片 | 全网最新网黄大秀直播高清,主播国产录屏在线| 久久久com| 五月之婷婷| 久婷五月| av人人操| 欧美成人精品三区综合A片| 五月婷婷我| 婷婷伊人综合中文字幕| 欧美 色婷婷| 国产97色在线 | 日韩| 99热乎| 久久性都花花世界成人免费视频| 第四色大香蕉| 99热99ai| 久久久久久久久99精品| 婷婷五月激情四射手| 婷婷少妇激情| 天天爽天天干天天| 成人五月天在线视频在线观看| 九九热99久久99| 激情五月天综合| 婷婷色成人| 婷婷丁香五月亚洲欧美| 超碰伊人碰婷婷五月| 99热最新| 久色网| 开心激情网在线| 九九免费精品在线视频| 婷婷五月天综合网| 六月婷色| 色色色五月| 亚洲精品色| 久久婷婷国产| www.色婷婷.com| 激情激情激情网| 香蕉综合网| 99精品综合| 无码色| 91九色欧美| www.激情五月天| 色色99色色| 久久多色| 天天射天天干天插色综合| 91综合视频丁香| 五月天偷拍| 成人视屏在线观看| 五月婷婷六月天| 婷婷久久色| 丁香婷婷色五月合集| 五月丁香六月日逼| 激情五月天综合图片小说网站| 久久综合干| 91精品久久久久、久五月天| 久久久精品色色色| 99日韩网站| 婷婷丁香五月天影院| 综合久久首页| 欧美婷婷九月| 九色在线观看91av| 婷婷色吧| 99热9999| 国产伦理精品高清在线观看网站一区二区 | 五月丁香激情婷婷| 99视频在线播放大全| 婷婷成人在线| 六月婷婷综合久久| www.久久久久久久| 久久婷婷五月天| 9久久婷婷国产综合精品性色| 久操97| 午夜丁香综合婷婷| 五月婷婷丁香综合| www.色五月| 精品五月视频婷婷在线观看| WWW.激情| 99久久综合网| 天天爽免费视频| 天天狠天天叉| 国产熟女一区二区三区五月婷| www.99精品在线| 成人电影AV在线观看| 久久人人九| 九九五月天| 26UUU欧美| 成人AV在线电影| 人妻丰满精品一区二区A片| 五月婷婷久久爱| 激情丁香五月激情婷婷| 亚洲美女网Va| 99色视频| 99精品久久久久久久久| 五月丁香六月激情综合| 九九成人高清视频| 色五月婷婷激情| 99精品在线观看| 成人 在线 日韩| 九九在线精点品| 色五月激情五月| 欧美婷婷色五月网| 五月丁香六月婷婷综合在线| 日日狠狠久久偷偷四色综合免费 | 色色婷婷综合| 五月丁香好婷婷A片网| 色情五月天视频网| 99久久玖玖| 婷婷五月激情网| 超碰操网| 丁香五月天堂亚洲社区| 久色网| 欧美性爱5月天天天看| 99亚洲无码| 91九色视频| 日韩在线观看网址| 中文字幕AV在线| 人人干AV| 五月婷婷激情| 婷婷五月天午夜激情影院| AV电影在线播放| www夜夜操wwwcon| 成人在线不卡| 久久5 9视频免费观看| 97婷婷在线| 亚州激情网站无码| www.射伊蕉婷婷| 深爱五月中文字幕| 免费黄色AV| 九九在线热九九在线热99热| 8区视频在线| 亚洲激情区| 99热国产| 五月丁香久久呀| 天天干肏夜夜| 久热9| 九九综合网色全集 | 99re这里只有精品国产99| 婷婷丁香小说| 色色色com| 2014天天爽| 五月丁香啪啪啪| 夜夜撸天天操| 久99久在线观看| 日本熟女内射| 国产69精品久久久久999小说| 我想看国产大学生口爆吞精的视频| A√天堂网在线| 婷婷六月啪啪| 99碰| 九色啦蜜臀| 欧美日本不卡黄色片| 99热这里有精品6| 五月婷婷六月天| 玖玖99精品视频| 色噜噜狠狠狠综合曰曰曰| 天天色粽合合合合合合合| 三级毛片7979| 丁香五月社区| 成人在线网站| 色爱终和网| 成人在线日韩| 日韩九九视频| 日日夜夜干| 五六月婷婷| 五月婷婷啪啪| 激情久久久| 欧美操人| 欧美五月丁香在线| 欧美日朝成人| 91天天操天天干天天射| 久热91| 五月婷婷影院| 丁香五月激情五月| 五月天婷五月天综合网在线观| 激情第四色| 五月情丁香色| 国产成人精品一区二三区熟女在线| 久久五月天合网| 人妻中文在线| 国产精品色色色色| 中文字幕不卡网站| 激情五月婷婷丁香| 97影院一级片| 天天爱天天爽| 成人网站免费sxj| 日本久久激情| 五月天综合视频网| 色综合久| 97婷婷在线| 婷婷99中文字幕| 色婷视频| 激情内射人妻1区2区3区| 6月丁香婷婷激情| 婷婷五月天99综合网站| 色五月天成人| www.91色| 91 九色大美女| 99热这里只有是亚洲国产| 久久婷婷大香蕉| 五月综合丁香婷婷| 99热九九这里只有精品10| 狠狠爱深色婷婷综合| 亚洲欧美一区二区三区四区爱爱动图| 啪啪色区| 大香蕉婷婷| 久久综合激情婷婷激情| 欧美精品99| 熟妇人妻中文字幕无码老熟妇| 色婷婷婷婷成人网| 婷婷五月天你懂的| 婷婷五月天影院| 99re最新地址| 欧洲99视频在线| AV片一区在线观看| 激情综合九月| 色六月天| 亚洲AV免费在线| 久久五月婷婷综合网| 九九热免费视频| 九九sese| 99热狠狠操| 欧美成人AAA片一区国产精品 | 色播五月丁香| www,av好吊操| 五月伊人综合| 日韩一级网站| 伊人激情AV一区二区三区| 五月婷婷丁香瑟瑟视频| 六月婷婷av| 九月丁香久久网| 五月激情站| 五月天婷婷在线啪啪视频| 天堂色色色| 99热 精品在线| 五月丁香福利| 五月天综合在线观看| 99视频这里只有免费精品| 99ri精品在线观看| 99国产精品白浆在线观看免费 | 99热99干| 狠狠操狠狠做| 91精品91久久久中77777久久玖玖九九 | 超碰碰碰碰| 国产永久一黄| 婷婷视频网| 日韩在线视频中文字幕| 九九性视频| 五月天色五月天| 日本欧美在线| 国产在线黄色| 激情五月天啪啪| 久热视频97AV在线观看| 国产午夜精品一区二区三区四区| 一起草性爱不卡视频| 夜夜操狠狠操| 久久这里都是精品| 26uuu亚洲精品国产| 五月视频日本免费观看| 超碰免费99| 丁香五月天天久久综合小说| 做爰丰满少妇1313| 另类小说五月天| www久| 色碰碰| 婷婷丁香五月综合| 99热这里只有精品99| 五月开心深深爱激情综合| 五月天色婷婷小说| 亚洲狠狠婷婷综合久久久| 噜噜噜噜婷婷五月天| 丁香五月中文字幕| 精品99在线观看| 丁香久久激情俄| 欧美日韩一区二区三区四区| 国产精品黑丝| 激情五月九九九| 91日综合欧美| 亚洲一区二区无遮挡A片| 伊人久热91| 亚洲狠狠婷婷| 99re视频在线播放| 色五月激情视频在线综合| 99操逼| 色情五月天视频网| 天天色天天爱天天舔| 99热精品网| renre人人操国产超碰在线| www 五月天 com| 日本激情五月天‘| 婷婷网五月天| 色噜噜综合网| 五月天开心网| 1024成人免费看| 丁香婷婷午夜| 大香蕉五月天婷婷| 一区二区中文字幕| 色情免费视频播放| 色五月播五月| 操碰97| 亚洲熟妇AV乱码在线观看| 亚洲99热| 综合五月丁香六月婷婷| 亚洲中文字幕网| AV五月丁香| 丁香五月天视频在线播放| 丁香五月婷婷影院| 丁香五月天堂| 欧美色综合天天久久综合精品| 色五月激情图片| 五月婷婷综合在线亚洲视频| 日hao1区| 九九热只有这里精品| 久久99这里只有精品视频| 天天狠狠六月婷丁香影院| 五月激情啪啪啪| 极品人妻VIDEOSSS人妻| 中文字幕第四色.999| 亚洲色啪| 亚洲丁香五月| 玖玖热视频| 五月激情视频| 日韩情色在线观看| WWW·天天操·视频?| 久热这里只有精品视频免费观看| 亚洲综合色婷婷| 日本人妻伦在线中文字幕 | 久色五月婷婷综合| 欧日韩成人| 色哟呦av| 婷婷综合网站| 思思热高清在线观看| 人人爱国产| 丁香六月天婷婷| 天天色天天爽| 天天综合社区| 婷婷导航| 大香蕉久久久| 五月播播| 熟妇内谢69XXXXXA片| 99ri在线播放| 五月天婷婷视频30| 五月天婷婷基地| 久久婷婷五月天激情| 五月天婷婷青青| 9999三级片| 热久免费视频9| 婷婷五月天毛片| 丁香花五月天| 天天插天天爱| 99a级片| 激情五月丁香六月综合AVXXXX| 超碰人人在线| 91美女被操| 色婷婷亚洲五月天| 色五月色综合| 欧美性爱特黄一级aaaassss| 色99色| 欧美在线视频9| 精品51XX| 天久综合91综合首页| 综合激情啪啪| 久久久久久97| 婷婷丁香五月综合网| 九九综合久久丁香婷婷,开心激情综合网| 久久婷婷五月天| 91综合视频在线| 97好吊操| 色欲AVV| 天天爽天天透天天爱| 国产成人+综合亚洲+天堂| 婷婷五月天网址| 五月天久久91| 91在线资源| 天天天摸夜夜夜玩| 欧美激情综合| 欧美色骚婷婷五月天| www,天天干| 一起草av| 婷婷色综合| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 亚洲天堂啪啪| 爱iii做iiii日日| 俺也高清无码高清视频| 玖玖色综合色| 五月婷婷开心综合| 996热re视频在线观看视频| 天天爽夜夜爽天天爽夜夜爽| 国产激情一区| 五月天六月婷婷| 天天综合91入口| 激情綜合網址| 成人精品在线| 久久总和99| 殴美日比视频| 99热这里只有精品8| 涩涩五月天综合| 久久小说| 五月婷婷性| 91疯狂操操操操| 亚洲午夜av| 亚洲色爽| 91女人18毛片水多国产| 丁香六月婷婷综合缴| 丁香婷婷影院| 色色无码| 欧美天天爽| 又大又粗九一在线| 真实亲子乱子伦高清在线观看| 一区三区视频有限公司| 婷婷午夜| 婷婷激情鹿城五月天| 日韩一级淫乱片一区二区三区| 九九热视频精品| 超碰色色综合| 五月天开心婷婷激情网站 | 五月婷婷新网站| 五月丁香六月激情网站| 亚洲色五月婷婷| 99热碰碰| 婷婷亚洲综合| 天天天天天日| 五月丁香手机在线| 啪啪日本欧美| 91色在线/日韩| 一个色的综合| 久草丁香婷婷五月天婷| 丁香婷婷色五月激情综合| 久久久区区一久久久久久| 日韩一级网站| 大香蕉婷婷丁香视频在线| 五月综合激情图片| 97碰碰碰| 熟妇无码乱子成人精品| 99热这里只有精品免费| 最新日本A片| www.九月婷婷丁香.com| 可以看的av| 99免费在线| 日本久久视频| 久婷婷视平| 五月婷婷综合激情| 婷婷色丁香六月| 亚洲激情综合色站| 伊人9草在线观看| 丁香五月天啪啪| 色五月播五月| 另类激情五月| 99久久婷婷国产综合精品草原| 91五月天| 色综合综合色| 色播激情五月天| 九九sese| 美日韩成人| 丁香花成人区| av婷婷六月丁香社区在线观看| 成人看片网站| 天天日天天干天天操| 色综合久久88色综合天天人守婷| 婷婷五月天AV在线| 1024人妻无码中文字幕| 五月丁香综合网| 久久五月网| av人人干| 思思精品热在线| 婷婷综合五月天激情| 欧美久久婷婷| 伊人色综合久久久| 久久婷婷七月丁香| 丁香六月激情| 国产色色视频| 九九综合九九| www.射伊蕉婷婷| 五月丁香六月成人| www,五月天激情| 亚洲五月天天| 五月天婷婷午夜丁香| 超碰激情网| 99伊人婷婷在线| 色婷婷狠狠禁久久| 久久久久久久11111111111| 亚洲色婷婷五月天| 中文字幕在线播放视频| 激情綜合網址| 亚洲熟妇无码乱子AV电影| 99性视频| 色综合开心五月深爱五月| 五月天色婷婷激情综合| 久久婷婷热| 97操在线视频| 日韩无码专区| 色色婷| 国产激情久久久| 婷婷中文在线| 欧美激情综合| 人妻久久久久| 五月天婷婷色五月天| 久久永久网址| 第2色五月婷| 亚洲色激婷| 婷婷AV丁香| 79亚洲精品少妇| 婷婷伊人激情婷婷| 婷婷五月天亚洲激情戏精品| 99视频精品全部免费 在线| 深爱丁香激情| 色五月首页| 丁香婷婷视频在线| 婷婷五月色色| 激情综合五月| 婷婷伊人| 粉嫩AV久久一区二区三区| 超碰av在线| 99这里只有精品视频| av九九| 91操人人操| 婷婷丁香精品视频在线观看| 青青草Avb在线| 超碰三级片| 亚洲无码yw| 九九碰九九爱97| 一根材五月婷成人| 色播五月丁香| 久久超级碰碰| 九九色影院| 丁香花大香蕉婷婷综合| 亚洲Av成人在线观看| 五月色婷丁香| AV在线免费播放| 亚洲天天免费| 婷婷激情五月天激情| 碰超99| 欧美精品XXXXBBBB| 艹色18p| 日本三级日本三级99| 婷婷久久夜| 人人摸人人搞| 五月丁香婷婷基地| 97人碰人操| 婷婷射图| 五月天综合区| 9l视频自拍9l九色9l成人| 五月天激情影院| 婷婷中文综合网| 婷婷五月激情欧美| 天天插夜夜爽| 在线观看免费狠狠色丁香香综合| 亚洲成人免费电影| 另类图片五月天激情| 91操碰| 九九久久99| 国产精品色婷婷99久久精品| 精品一二三区久久AAA片| WWW、日本色丁香、co m| 99久久久久| 这里只有精彩亚洲视频推荐| 99re思思久久| 色五月大香蕉| 丁香五月先锋| 夜夜夜叫天天天做| 国产精品久久久久久白浆色欲| 一二线视频 另类| 棕合影院色色| 久久综合网免费视频| 九九视频这里只有精品| 日本久久精品| 亚洲小电影在线观看黄999| 婷婷五月天va| 91色色色| 99久热| 色噜噜狠狠色综合成人网| 色宗合久久五月婷婷| 激情综合五月| 十区av| 欧美性色五月天| 成人五月丁香社区| 人妻六月天| 五五月五月| 狠狠插狠狠操| 啪啪夜久久| 凹凸操Av| 免费无码毛片一区二区A片| 超碰人人超碰| 99网99热| 狠狠色丁香久久综合婷婷亚洲成人福利| 色色网站在线免费观看视频| 成人婷99最新| 大香蕉AV电影在线| 婷婷亚洲五月丁香综合在线| 久操婷婷| 色99在线观看| 婷婷丁香六月| 久99久视频精选| 色久综合天天做视频| 国产乱子轮XXX农村| 91日韩在线| 婷综合| 97婷婷丁香| 99热久| 五月丁香六月婷婷激情四射| 五月婷婷色吧!| 国产精品久久久久久久久久| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 久操97| 思思干精品| 我要看激情五月天| 色青青电影色五月| 久久这里只有精品无码| 色婷婷成人做爰A片免费看网站| 99视频超级精品| 99热免| 快乐激情五月色婷婷| 91精品丝袜久久久久久| 99在线视频精品| 色婷婷中文在线| 热久91| 色在线视频网2025| 色五月婷婷影视| 色婷婷丁香五月在线观看| AV在线不卡网站| 丁香五月婷婷色情综合| 色婷婷啪啪| 激情第四色| 久久久五月五丁香| 碰碰91| 综合网色| 久热这里| 爱的综合网| 亚洲在线网站| 六月丁香五月天| 九九人人看| 日本人人xxx| 啪啪操超碰| 丁香五月影院| 欧美精品久久久久久视频观看| 人妻久久久久久| 五月丁香婷婷在线综合蜜桃| 成人无码精品1区2区3区免费看 | 久久婷婷久久| 五月天婷婷AV| 中文字幕黄色片| 五月花婷婷在线精品视频| 国外亚洲成AV人片在线观看| 五月宗合激情网| 91好好热日本在线| 老司机伊人| 综合视频五月| 五月天婷婷久草丁香| 亚洲综合久| 天天拍天天做视频| 5Www色5夜| 久久狠狠干| 中文资源在线a| 操91| 婷婷五月天第三页| caop在线视频| 狠狠精品干练久久久无码中文字幕| 狠狠做深爱婷婷久久综合一区| 97色色婷婷| 婷婷九九色| 亚洲无码色色| 天天天天色天天天天天干| 激情久久久久| 99爱在线| 久久丁香五月天| 99热这里只有精品3| 狠狠看狠狠| 色五月天丁香婷婷色| 欧美日韩成人| 色在线99| m色激情网| 久操热| 9 大屁股在线视频精品| 欧美丁香婷婷五月| 丁香五月婷婷色| 99成人网一区| 色婷婷第四色| 丁香六月色婷婷| 九九视频在线免费视频| 丁香五月婷婷AV| 丁香花社区av| 91精品久久久久久| 激情性五月天免费小说视频| 五月婷婷六月丁香首页| 少妇大叫太大太粗太爽了A片| 99爱在线视频| 天天日夜夜操五月| 亚洲激情综合网| 夜色.cnm| 亚洲精品V天堂中文字幕| 九九色色| av在线色五月丁香婷区久| a在线观看| 日本欧特黄色刺激一区影视久精品无码| 久久 婷婷 五月天| 婷婷五月天激情五月天网站| 欧亚洲在线高清视频| 色 噜噜 九月 婷婷| 嫩BBB槡BBBB搡BBBB| 丁香婷婷五月色成人网站| 人人视频色| 色五月婷婷五月丁香五月激情五月视频 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 五月丁香A∨在线| 另类少妇人与禽zOZZ0性伦| 午夜成人网站在线观看| 婷婷五月天日本无码| 色五月涩涩婷婷蜜桃| 99热精品观看| 亚洲精品又粗又大又爽A片| 日韩久热| 四月婷婷五月丁香| 深爱五月婷| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 亚洲色五月婷婷| 99年操人人爽| 婷婷啪啪| 丁香婷婷色五月激情综合| 五月婷婷亚洲| 99精品在线观看视频| 色综合日日| 襙逼网| 激情五月综合色婷婷| 99精品久久| 色色丁香五月天| 六月婷婷综合久久| 六月丁香成人| 免费看片在线观看| 殴美97色| 亚洲中文AV网站| 婷婷丁香精品视频在线观看| 9久热精品在线视频| 精品影院| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 婷婷色在线| 99精品久久| 色色无码| 国产全是老熟女太爽了| 婷婷色导航| 九九色影视| 久久婷婷五月天| 久热这里| 区美毛片子| 日本久久精品| 成人网在线视频| 丁香激情久久| 草综合14| 久久A V无码视频| 激情五月视频在线婷婷| 婷婷玉月丁香五月在线视频| 久热这里只有精品66| 性爱电影科技贸易有限公司| 丁香六月婷婷综合网| 99久久综合精品五月天| 国产精品色婷婷AV综合色色| 五月婷婷五月| 久久综合五月天| 天天操天天干天天日| 欧美成人AAA片一区国产精品| 国产AV影片| 9 大屁股在线视频精品| 成人电影在线免费试看| 婷婷五月亚洲激情| 欧美婷婷五月天综合| 99精品免费| 五月天婷婷激情小说电影| 99精品小视频| 成人 九九九九| 日本三级毛片| 色色五月婷| 99久久思思| 五月天婷婷綜合院| 色综合久久99色| 亚洲a色| 午夜69成人做爰视频| 91操黄| 亚欧州精品视频| 激情五婷精品网在线观看网址| 人妻videos人妻高清| 99热在线精品观看| 日本啪啪天堂| 五月激情久久| 六月婷婷开心| 欧美色婷婷| 色婷婷很很十八禁| 色综合丁香婷婷| 开心五激情网| 人人爱人人草| 亚洲精品无码一区二区| 婷婷婷五月香蕉| 天天草人人摸| 丁香五月天激情免费在线观看AV777 | www.91色| 五月天婷婷激情四射综合| 五月丁香六月婷婷精品| 五月丁香啪啪伦理电影| 色无码| 国产午夜精品一区二区| 天天综合图片| 亚洲综合成人网| 99综合成人视频在线观看 | 日日艹思思热| 天天爽天天操| 丁香五月婷婷色偷偷| 天天插天天很| 99ri视频| 99内射视频| 久久婷婷丁香六月天| 精品人妻一区二区| 五月丁香婷婷啪啪综合| 激情宗合网激情五月天| 能看的av网站| www.yw色| 久久人妻www| AA片在线观看视频在线播放| 五月婷婷啪| 天天综合色丁香| 五月丁香激情综合网官网| VA国产在线综合网站| 激情综合啪啪| 五月婷婷,狠狠操| 中文乱子伦视频| 香蕉网婷婷| 丁香婷婷人妻综合网| 久久久这里有精品| 99网址在线看| 丁香五月激情综合| 一级性感毛片| 午夜丁香五月天综合| 天天日天天肏天天奸| 丁香五色月婷婷网| 99热成人| 26uuu国自产精品| 99综合网| 激情婷婷色色| 超级碰碰碰97免费| 婷婷天堂视频| 九九热精品视频在线观看| 丁香六月欧美| 99久久综合| 91九九九九九九| 婷婷五月色亚洲| www.丁香六月婷婷久久天堂影院.con| 一本久久亚洲五月婷婷 | 性韩日色婷婷五月天激情啪啪XXX| 天堂久久精品| 久久HD| 激情小说在线视频| 成人五月天综合网| 色无码| 婷婷五月天激情偷拍| 国产AV一区二区三区日韩| 99热久只有精品首页| 极品少妇XXXX精品少妇偷拍| 久久五月丁香伊人青草| 99热这里| wwwxxx五月婷婷小说| 中文字幕不卡网站| 五月色影院| 色五月婷婷操逼|