99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜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
返回資訊列表
99热在线精品播放| 婷婷激情五月天色| av网站不卡在线| 五月婷婷二月丁香| 天天日天天狠狠操| 欧美色97| 91色欲综合| 久热九九| 五月婷婷在线观看黄| 亚洲激情在线| 黑人无码一区| 日本网站久久| 粉嫩AV久久一区二区三区| www.色色色色| 久久婷婷五月天激情| www.91在线观看| 五月天电影网| 色五月亚洲| jiZZdr| 播五月婷婷开心| 97婷婷久久丁香| 色婷婷电影网| 婷婷综合久久| 大香蕉网站,大香蕉综合| 俺去也在线视频| site:xiongshengzz.com| 激情综合色婷婷啪啪六月天| 亚洲色五月| 99精彩视频| 婷婷久久视频| A一级操| 91综合色| 超级碰碰91| 色吧婷婷五月亚洲| 日本视频不卡123区| 9l视频自拍9l九色9l成人| 亚洲五月综合色播| 激情黄色五月天| 亚洲精品视频在线播放| 曰曰久久| 激情网第九色| 九九伊人网| 91啪啪啪啪| 开心激情网五月| 天天舔天天插天天爱| www.久久爱.c n| 69凹凸成人综合网| 五月天婷婷丁香成人网| 亚韩精品视频1区| www.久久爱| 久久五月激情综合| 黄色五月婷婷| 色情五月丁香| 激情五月小说婷婷| 国产精品美女久久久久AV超清| 久久99视频| 婷婷久月| 丁香婷婷五月色成人网站| 狠狠草狠狠草| 殴美激情综合网| 色婷婷五月天久久| 91碰超| 五月天久久综合婷婷| 亚洲性爱99| 99视频在线| 深爱婷婷丁香五月激情| 色五月播五月| 91精品国产91久久久久青草| 日本三级韩三级99久久| 99热在线观看| 夜夜爱爱亚洲| 久久9999| 五月丁香婷婷福利| 亚洲激情综合五月婷婷啪啪| 九九性视频| 免费试看小视频 99| 婷婷五月天伊人网在线观看视频| 99国产这里只有精品| 天天色天天爱天天爱天天爱y| 另类综合婷婷五月天欧美视频| 天天情色综合网| 有哪些A片网站| 日本婷色| 亚洲视频在线观看| 婷婷五月丁香综合亚洲| 久久天堂网| 婷婷五月丁香啪啪| 五月永久激情| 婷婷五月天综合网| 亚洲无码色| 五月丁香| 日韩无码人妻一区二区| 丁香五月天天| 婷婷五月六| 狠狠爱婷婷| 久久久97| www.久久99精品| 黄色91在线观看| 九九九色综合| 激情五月天伊人av| 亚韩在线视频| 婷婷五月综合性爱| 色五月激情综合网| 午夜婷婷六月天| www激情| 97人人干人人操| 五月丁香六月| 天天艹| 99热国产精品| 婷婷五月亚洲一本在线丁香| 婷婷的99视频网站| 婷婷五月天久| 婷婷五月激情基地| 99热青青草| 色香蕉影院| 天堂二区| 九九成人高清视频| 九九热10| 久久久色情| 久久婷婷综| 色青青视频| 五月丁香六月婷婷网| 99热综合网| 亚洲综合色激情色五月| 亚洲综合一区二区| 久热这里只有精品在线| 性爱视频久久| 99在线69| 月婷婷婷婷五月| 丁香五月天.com| 国产人妻777人伦精品HD| 欧美日韩成人高清在线| 狠狠色噜噜狠狠狠狠狠色综合久久| 婷婷免费无马| 五月丁香六月婷婷网| 9久精品| 玖色色综合| 婷婷丁香六月五月天| 五月天天爽| 成片免费播放| 大香蕉啪啪啪| 在线成人网址| 婷婷激情人妻| 久久久久人妻精品| 欧美婷婷综合| 婷婷五月丁香六月天亚洲综合| 开心激情网五月天| 看婷婷五月天网| 亭亭五月丁香五月天激情| 99色| 大香蕉五月天婷婷| A1片久久久| 久久综合66| 18av天堂| 天天做天天爽| 亚洲午夜精品久久久久久人妖| 狠狠狠狠狠狠| 天天操天天曰天天射| 五月天婷婷黄色| 99免费在线| 99re久热只有精品6在线直播.com| www,五月天激情| 欧洲色色| 99惹| 蜜乳av一级av| 国产高清视频91九九九久久久| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 99在这里有精品| 狠狠操狠狠插| 激情综合五月色在线| 另类视频综合| www.激情五月天。com| 丁香五月天.com| 国产精产国品一二三在观看| 五月天激情Av| 色婷婷亚洲综合网站| 狠狠干五月丁香| 九九热最新| 狠狠色中色| 五月丁香六月婷婷啪啪综合| 五月丁香啪啪网| 久9无码视频| 五月天婷婷视频30| 97色婷| 日韩国产在线精品| 美女美女美女三级色天天天天天| 中文字幕丰满孑伦无码专区| 操你av| 久久黄色片| 久久小视频免费| 激情五月色婷婷| 精品人妻在线| 97久久久久| 激情综合99| 五月天久久www| 99re在线视频| 激情五月天在线观看色婷婷| 大香蕉久久| 激情五月激情综合俺也去婷婷小说| 色婷婷丁香| 深夜男女福利刺激影院一区完整| 日日夜夜干| 99热6这里之有精品| 伊人久久婷婷| 丁香网五月网| 91无码高清| 亚洲操逼片| 五月丁香六月婷综合成人综合 | 九九久久99| 九九无码AV| 婷婷五月深爱五月| 中文无码婷婷| 国产精产国品一二三在观看| www.minyis.com【JT】实力收量可预付QQ2101460746 | 色色婷婷丁香五月天| 成人在线99| 丁香婷婷五月色成人网站| 色五月色五天色情网| 99婷婷| 噼里啪啦在线观看免费完整版视频| 伊人婷婷激情| 久热A片| 韩国激情五月天综合网| 久久机热这里只有精品免费视频 | 亚洲情色一区| 久er7久热| 丁香99| 狠狠色综合久久| 色色色五月婷| 999热在线观看视频| 色婷婷五月在线| 中文字幕av在线播放| 久久婷婷五月综合| 日本天堂免费99| 99re视频在线播放| 久婷狼色诱惑在线| 色婷婷狠狠| 99只有这里是精品| 丁香五月天在线观看视频| 乱精品一区字幕二区| 操骚货在线| 久久欧洲久久| 久久 无毛。| 日韩啊啊啊| 天天色爽| 狠狠色综合网| 91综合在线观看| 激情综合网五月天| 中文在线成人| www,av好吊操| 国产va在线视频| 久99精品视频| 99色热综合| 五月色网| 五月天婷婷AV| 99久久极情精品一区| 天天做天天爱天天摸| xxxx五月天色色| 激情五月久久| 操久久网| 极品另类| 99天堂网最新| 欧美色必爱| 亚洲AV色婷婷人禽五月天| 九九色院| 婷婷99综合| 狠狠操狠狠爱| 激情五月综合色婷婷| 亚洲国产成人AV在线| 色偷偷五月天| 久久婷婷成人视频| www.91婷婷| 丁香五月激情五月| 热久久999| 婷婷成人视频| 久久ab| 殴美综合激情五月天免费视频| 啪啪五月天啪啪| 色婷婷综合网站| 欧美三级视频下载| 亚洲永远av在线播放| 亚洲九九夜夜| 大香蕉综合| 99热手机在线精品| 天天操天天曰| 深爱五月激情五月| 久久伊人五月天| 婷婷五月天免费| anquye伊人| 99久久婷婷国产综合精品青桔| 夜夜大香蕉婷婷丁香| 成人龟情网丁香五月| 色婷婷激情| 深爱五月激情| 婷婷五月婷婷| 97人人草| 成人综合网站| 色综合77777| 999热在线视频| 色情五月天丁香社区| 五月丁香六月激情欧美综合| 26uuu国产| 可以看的AV网站| 丁香成人综合| 欧美Va在线| 激情婷婷丁香色情五月天| www..com色爱| 亚洲婷婷开心五月| 激情五月天网页| 亚洲六月婷| 色高清无码视频| 成人va在线观看视频| 五月天婷婷综合久久| 久久久人妻人伦| 色色色欧美| 婷婷五月天成人| 丁香丁婷五月激情| 久久这里只有精品无码| 天天天天天日| 最新av在线观看| 婷婷丁香五月网| 狠狠干在线| 91人人操人人| 极品少妇XXXX精品少妇偷拍| 亚洲三A| 99年操人人爽| 色情终和网| 国产jd1024基地手机看国产| 天天综合区| 4399欧美另类视频| 久热无码| 成人日韩欧美| 五月天色导航| 婷婷狠狠干| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 激情丁香五月婷婷啪啪| 人人人操B超碰| 亚洲AAA| 丁香婷婷中文字幕| 九九热中文| 丁香五月婷婷啪啪| 色色网91| 日韩好吊操| 热这里| 五月天成人综合| 亚洲色碰| 国产欧美精品AAAAAA片| 五月婷婷婷综合网| 色五月天天| 成人无码髙潮喷水A片| 精品99*| 67194中文字幕| 99人人干人人| 亚洲女婷婷五月基地综合久久久| 色婷婷天堂| 亚洲操操| www、丁香五月天| 五月天激情站| 五月天社区婷婷丁香社区| 日韩无码色色| 亚洲在线成人| 另类 在线| 五月天伊人av| 亚洲色99| 国产乱人偷精品人妻A片| 六月丁香激情| va婷婷在线免费观看| 荷兰av一级| 午夜婷婷| 丁香九月久久| 亭亭五月色男人| 丁香五月伊人| 亚洲色色五月| 五月丁香婷婷激情澎湃四射| 激情综合五月| 七七久久婷婷| 就爱操www com| 182TV大香蕉| 亚洲亚洲人成综合网络| 亚洲欧洲另类| 色九九九九| 黄色中文字目| 99re思思精品视频在线观看| 色小说五月天| 免费91久久精品| 操人无码| 天天综合色| 在线中文AV| 永久无码色| 狠狠狠狠狠狠狠狠| 我淫我色婷婷五月天激情四射| 狠狠色综合网| 伊人婷婷大香蕉| 中文不卡av| 久久久8| 国产精品色色色色| 97色婷| 久久总和99| 俺去也五月| 99色爱| 激情五月综合| 色~性~乱~伦~噜| 狠狠色婷婷丁香五月| 久久6这里只有精品| 色婷婷丁香五月在线观看| 白人荫道BBWBBB大荫道| 婷婷五月丁香综合| 婷婷丁香熟妇综合网| 9久久久| 秋霞三及片| 成人亚洲精品久久久久| 99精品久久| 久久久久久人妻| 99re青青草| 激情综合五月色丁香婷婷 | 九九久久综合网站| 超碰免费在线| 狠狠草婷婷| 天天影院色| 无码啪啪| 亚州色色色| 久久99综合| 97碰啪啪| 色天天综合天天综合频道。| 人妻22p| 五月丁香| 青青青在线视频国产| 女性自慰系列第五页| 激情五月开心五月在线视频| 亚洲色综合| 秋霞黄色一级久久| 久久亚洲婷婷| 99热久只有精品首页| 99在线观看视频| 久9草在线观看视频| 婷婷夜夜夜夜| Av在线不卡一区| 婷婷五月18永久免费视频| 日韩精品AV一区二区三区| 就爱操www com| 成人网在线观看视频| 成人精品99| 韩国97天堂| 婷婷五月天六月丁香| 18久久| 91成人看片| 五月丁香婷婷基地| 大陆极品少妇内射AAAAAA| 六月天六月婷| 在线看黄色| 91人操人人人操人| 五月婷婷色播视频| 亚洲成人在线电影网站| 九九干视频| 久久99精品九九久久久婷婷| 成人视频网| 久久久精久人妻| 99视频综合网| 久久伊人五月天| 在线看AV| 丁香婷婷九月| 思思久ren热| W色综合| 丁香五月天的网址。| 亚洲成人中文字幕| 五月丁香六月色| 激情亚洲婷婷六月| 日韩精品999| 超碰免费成人| 综合婷婷| 婷婷伊人久久无码色五月| 婷婷深爱五月丁香| 99热这里只有精品268| 亚洲成人无码专区| 五月停停色色丁香| 色情一区二区播放| 乱码操操| 久久天堂女人| 人人爱人人草| 婷婷五月天第三页| 色综合色综合婷婷热| 九九久久免费视频44| 99爱视频在线观看这里只有精品| 人人人人人人人草| 深爱激情中文五月天av| 偷拍九九热| 亚洲AV成人精品日韩在线播放| 色五月婷婷 成人| 9999热在线| 人妻无码精品一区| 日本色视| www.五月激情红色| 大香蕉av在线| 久久久精品99| 51精品国自产在线| 色婷婷基地| 色婷婷久综合久久一本国产AV| 大香蕉九九| se婷97| 天天日天天爽| 亚洲五月天婷婷| 激情综合六月| 国产精品五月丁香| 91超碰人人操| 丁香五月天天| 秋霞少妇毛片| 91嫩草国产线观看亚洲一区二区| 激情六月婷婷| 午夜激情婷婷| 久久久无码精品成人A片小说| 五月丁香久久综合精品| 日韩色色色99| 在线中文字幕av| 日韩AV成人电影| 成人片黄网站色大片免费毛片| 久久婷网| 99精品热视频| 日本欧美成人片AAAA| 狠狠干青青草| 欧美激情xxxXX| 久久99免费视屏| 亚洲另类婷婷综合| 9精品视频在线观看| 99精品久| 99久久欧美| 国产毛片欧美毛片久久久| 五月丁香综合影院| 婷婷五月色天| 俺去也五月| 狠狠五月天激情| 深爱激情九九五月天 | 五月婷婷激情网| 这里只有精品免费视频在线观看| AⅤ色区| 99热 在线观看| 六月色色| 一本色道久久综合狠狠躁小说| 日本色色视频| 五月天婷婷色综合| 综合另类激情| 五月天婷婷Av| 激情亚洲五月| 亚洲亚洲人成综合网络| 婷婷亚洲综合| 青草视频在线观看视频| 欧美性生交A片免费看| 亚洲精品久久久久AV无码| 大香蕉综合| 久久精彩视频| 92久久精品一区二区| 香蕉AV福利精品导航| 丁香激情五月| 怡红院AV亚洲一区二区三区H | 婷婷网影院| 五月丁香趴趴| 青青久久五月| 丁香婷婷五月人体| 亚洲久久日| av无码电影| 五月天婷婷基地综合网| 久草A片| 9久热| 91狠狠色| 亚洲丁香五月天在线视频| 激情五月综合色婷婷| 欧美婷| 色女伊人| 超碰日日操| 日日色综合| 天天拍天天操| 大香蕉视频99| 99视频在线看| 永久免费视频| 婷婷色五月激情| 天天综合亚洲综合| 99久久五月婷婷| 五月丁香福利| 国产做爰视频免费播放| 婷久久久| 色综合区| 五月天婷婷久久综合| 女高怪谈在线观看| 午夜免费试看| 色综合久久久久| 玖玖99婷婷| 久久人五月| 五月天婷婷社区久久综合| 97久人人| 婷婷五月天在线观看av| 丁香午夜天| 91ncom.色| 免费看欧美成人A片无码| 婷婷五月天av小说| 任你干嘛免费视频播放| 丁香色五月婷婷17C| 激情五月丁香激情综合网| 天天草天天摸| 久久久婷婷婷| 91热视频| 日日天天天| 99成人免费热视频| 激情五月久久| 超碰在线网站| 天天日,夜夜爽| 秋霞AV淫| 九九艹女| 怕怕視頻| 婷婷五月天激情综合深爱| 26uuu欧美| 极品人妻VIDEOSSS人妻| 狼友超碰| 色欲资源网| 91久久久久久久久18| 欧美情色电影一区二区| 丁香五月综合| 五月天婷婷在线播放| 欧美99热| 色欲九区| 欧美毛片www| 综合99久久| 久久丁香婷| 丁香婷婷精品视频| 九九这里是免费的视频5| 97精品人人A片免费看| 婷婷九月亚洲| 婷婷五月天高清无码| 婷婷久久久| AV无码免费| 国产精品日韩十五区| 99热国产免费| 欧美综合五月丁香六月婷| 人妻久久久久久久久久| 狠狠精品干练久久久无码中文字幕| 大香蕉网 久久| 五月婷婷五月丁香综合| 日韩一级片| 9久9久| 激情网五月婷婷| 天天干天天做| 色色网站免费在线视频| 激情综合网五月天| 在线播放 精品| 六月激情婷婷综合| 超碰成人电影| 1024操逼视频| 丁香婷婷激情六月五月开心| 色色色1网址| 99色热视频| 99精品热| 婷婷五月天播| 91精品久久久久久77777| 大香蕉啪啪| 五月婷婷激情网| 久久丁香九| 九九在线这里只有精品视频| 六月婷婷综合网2| 久久五月天色婷婷| 91人人操人人| 99热99| 激情婷婷五月| 日韩无码人妻一区二区| 人妖色AV色综合| 九色色| 操逼电影免费看| 五月天在线视频尤物视频在线看| 97超碰,人人舔,人人操,人人摸| 久热这里这里有精品| 中文AV在线播放| 五月天婷婷香蕉狠狠超碰综合| 亚洲五月天另类小说图片| 7777国产盗摄农村女人| 色色色综合网| 秋霞AV美国| 99这里有精品视频| 九九狠狠干| www.色综合.com| 99精品视频在线观看免费| 1024日韩| 这里只有精品视频在线观看免费| 天堂无码人妻精品AV一区| 成人婷婷| 日本在线视频播放91| 婷婷五月综激情| 国产 亚洲 在线| 久久九九综合| 最近中文字幕大全免费版在线| 婷婷久久五月天亚洲欧美国产日韩在线观看| 开心婷婷五月| 婷婷激情五月综合丁香社| 狠狠色综合无线观看| 五月婷婷,六月丁香| 七七九色| 婷婷久久综合| site:minyis.com| 99爱在线视频| 丁香五月天啪啪激情综合网| 卡视频1区2区| 九九黄色网| 五月天亚洲最大成人| ..真实国产乱子伦毛片| 四月丁香五月婷婷久久| 色婷婷色99国产综合精品| 狠狠狠狠狠| 九一99| 国产熟女大叫受不了| 伊人干综合| 久色成人| 伊人超碰在线| 99九九久久| 日韩成人精品一区久久久久| aaaa.黄| 天天做天天爽| 爱草人视频| 五月丁香婷婷综合视频| 中文字幕在线免费观看视频| 亚洲综合干| 91丨人妻丨国产丨丝袜| 五月天综合久久| 婷婷激情六月天视频| 色激情五月| 最近中文字幕大全免费版在线 | 色综合网页| 51XX午夜影福利| 国产寻花在线| 26.uuu丁香五月婷婷| 国外亚洲成AV人片在线观看| 天天干夜晚夜操| 综合久久高清| www.cao.com久久| 99综合视频| 久久五月婷天天干| 久九色| 五月丁香另类网| 五月天色丁香| 思思久久99| 久久九色| 综合 蜜月 婷婷| 26uuu欧美| 99色在线观看视频| 色丁香五月天射婷婷爱婷婷| 99久久高清视频| 色婷婷影院| 久久丝袜婷婷| 五月婷婷婷婷婷| 色情性爱视频网址| 久久精品系列| 国产精品24r| 丁香五月天电影| 亚洲人成色A777777在线观看 | 久久综合激情| 五月天激情图片| 思思热高清在线观看| 免费的日逼视频| 婷婷午夜丁香| 99精日本久久| 免费看欧美成人A片无码| 日本色婷婷| 99视频热| er99免费视频在线| 色婷婷婷av| 色婷婷丁香AV综合| 操人妻AV| 裸体做A爰片毛片A片免费| 97精品综合久久| 日撸夜撸日操| 激情五月婷婷啪啪| 五月婷婷中字在线| 久久综合九九| 99re在线精品视频| 97欧美在线| 碰超在线九色| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 91久久| 天天舔天天摸| 丁香午夜天| 色综合综合色| 99这里只有精品在线观看| 久久er+| 丁香五月色色色色| 98永久精品| 视频1区2区| 久久九九囯产| 中文字幕不卡视频| 丁香婷婷五月综合| 色五月大| 五月婷婷激情日本| 97碰人人操| 99网址在线看| 成人网站免费在线播放| 97人人操| 99久久9| 性爱五月丁香| 五月婷婷熟女| 五月天激情四射| 婷婷色导航| 狠狠色丁香五月婷巨| 丁香五月综合高清在线| 欧美丁香五月| 午夜免费试看| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 欧美色男人网站| 亚洲成人无码专区| 国产免费一区二区三州老师F1……| 综合色色五月| 天天久久婷婷| 2015WWW永久免费观看播放| 一级黄色操B| 久9草在线观看视频| 热996精品在线观看| 亚洲Av成人在线观看| 日本欧美国产| 婷婷色婷婷亚洲成人| 日韩砖区| 丁香五月,激情五月,深爱五月| 狠狠色噜噜| 婷婷五月成人| 激情四射五月天| 99热这里精品| 亚洲日本韩国| 壅壅儕家a| 变态另类色图| 秋霞A V毛片| 五月伊人综合| 久色网五月| 天天激情欧美美女| 九九AV| 在线观看国产高清视频免费网站 | 天天日日| 丁香操逼| 五月色婷婷影院| 秋霞三级色戒| 管管補管管紱| 色情五月婷婷| 欧美日韩999| 欧美精品中文字幕亚洲专区| 大大香蕉综合在线| 一级精品999WWW| 婷婷色色综合激情| 五月激情婷婷丁香| 99热.com| 九九九激情网| www.婷婷亚洲基地| 欧美一区二区三区不卡影视| 五月丁香综合在线| 欧美激情五月天| 久草婷妨| 婷婷五月成人| www,av好吊操| 激情www| 色久一| VA日本视频| 欧美日韩AAAA| 5月丁香啪啪啪| 大香蕉网 久久| 在线日韩视频| 啪啪六月婷婷| 丁香五月婷婷基地| 五月丁小婷婷激情四射| www.色五月.com| 99精品在线下载| 五月天婷婷av| 亚洲人成网站999综合| 久久9999| 婷婷五月久久| 色色99| 在线成人国产| 九九蜜臀精品| 激情五月婷婷| 狠狠一日| 婷婷五月丁香av网站| 天天草天天摸| 青柠影视免费高清电视剧| 日韩精品成人在线| 亚洲久久婷婷| 99视频在线观看网址| 国产AV一区二区三区最新精品 | 丁香五月激情欧欧美| 人人综合久| 大鸡巴伊人网| 99热99ai| 午夜性爱影视一区77| 丁香五月婷婷AV| 182无码| 五月天综合缴情网网站0| 激情五月天综合网| 久久九九思思| 深夜婷婷五月丁香| 97精品综合久久| 久久婷婷五月激情综合| 久久久www| 亚洲人人操BD| 国产这里只有精品| 丁香九月婷| 天天日日夜夜| 色色色色色日韩午夜激情 | 色婷婷丁香五月色综合网| 九九伊人网| 9久视频| 操逼三区| 久久五月情| 五月婷婷人妻| 亚洲日韩成人三级av| 丁香五月天天| 亚洲热热视频| 五月伊人网| 亚洲成人无码网站| 亚洲黄3级片网站欧美| 欧美综合激情五月天| 国产肥白大熟妇BBBB视频| www.henhenl| 99热这里只有精品中文字幕| 国产FREESEXVIDEOS性中国| 激情五月丁香婷婷夜夜操| 九九碰九九爱97超| 99热伊人综合| 夜夜爽日日躁| 三十熟女| 色爱综合网| 激情五月天啪啪| 五月婷婷六月丁香玖玖玫瑰91| 色色综合色| 婷婷五月天大香蕉在线视频观看| 五月天基地| 波多婷婷久久| 国产色99| www.激情五月天.con| 另类国产综合| 在线亚洲综合网| 日韩五月丁香| 热久久色| 五月天激情久久| 91九色精品女同系列| 99黄色性生活| 九色91视频| 久久五月视频| 亚州精品色情无码A片| 丁香色五月 97干| 情五月亚洲婷婷| 538在线精品| 99亚洲色| 日本 色综合| 日本久久人| 久热人妻| 国产亚洲在线| 91人妻色色网| 久久视频在线视频| 思思99精品视频在线观看| 国外亚洲成AV人片在线观看| 五月噜噜| 国内在线99视频| 99精品视频网站| 久久久宗合| 五月天综合久久| 婷婷五月天丁香花| 99∨VTV| 俺去也在线www色官网| 精品人妻一区二区三区四区不卡在| 国内婷婷丁香社区在线播放| 超碰人人摸人人操| 丁香婷婷啪啪啪| 激情五月天色色色| 日本啪啪网| 久久国产高清| www.久久| 好吊操这里只有精品| www久| 九九精品在线网| 99色| 婷婷精品视频| 伊人综合网4| 91午夜婷婷狠狠久久综合9色| 久色激情| 那里有AV网址| 五婷婷综合网| 综合激情在线| http://www.lingjunshare.com/| 久久5 9视频免费观看| 色九月婷婷丁香| 亚洲成色综合网站免费观看| 亚洲综合色激情色五月| 欧美色99| 国产一级婬片毛片| 成人超碰网| 婷婷亚洲综合| 六月丁香婷婷在线波多| 991精品在线视频| 97操碰| 狠狠色成人影片| 综合色情网| 狠狠干五月| 日本久久性| 五月婷婷黄色视频| 9精品在线| 色五月综合激情网| 色五月婷婷在线| 月婷婷亚洲| 久热精品9999| 五月色综合| 婷婷五月天六月丁香| 久久久久久草黄色片AV在线观看| 丁香五月婷婷激情四射深爱激情| 五月天操逼网| 色操b| www。五月天激情| 婷婷丁香黄色| 亚洲综合激情五月久久| 另类五月激情| 精品导航在线x不卡| 五月丁香狠狠爱| 色五月婷婷大香蕉| 色婷婷五月天激情在线播放| 六月撸婷婷| 九色成人AV在线| 久久久天堂国产精品女人| 操日视频| 婷婷开心久久| www婷婷亚洲| PORNY九色9l自拍视频成人| 天天综合网站| 久久丝袜婷婷| 免费五月婷婷网| 婷婷瑟五月天久久综合| 91九色国产| 中文在线成人| 婷婷五月天综合久久日美女| 丁香五月天视频| 91在线日| 99热热这里只精品996小说| dingxiangtingtingliuyue| 色五月丁香五月激情五月激情| 亚洲中文AV网站| 夜夜操加勒比| 人妻AV在线| 婷婷综合激情| 人妻视频在线| 五月婷婷综合丁香视频| 婷婷五月六月丁香综合| 婷婷五月天成人动漫| 日本一级一级一级一级| 久久精品五月天| 操精品9| 成人无码精品1区2区3区免费看| 99精品国产热久久91色欲| 天天噜| 日韩av在线免费观看| 六月丁香开心婷婷欧美| 99热久久这里只有精品| 天天日日夜夜| 婷婷丁香五月综合| 五月丁香免费视频| 99日本黄站| 色婷久九| 开心五月婷婷激情| 爱操人妻| 99综合在线| 情色五月天网站| 另类综合激情| 婷婷中文字幕| 亚洲色婷婷| 国产 码在线成人网站| 99自拍视频在线观看| 激情五月六月婷婷| 九九爱看亚洲| 日韩激情人伦人| 婷婷激情区| 婷婷综合网伊人| 色亚洲视频| 五月综亚洲| 亚洲 无码 中文字幕 中出| 深爱五月中文字幕| 很很干五月天| 九九久久五月天综合伊人| 涩涩五| 五月丁香六月婷婷亚洲| 欧美色色色| 久久 视频这里只有精总| 九月丁香五月婷婷| 热思思| 狠狠五月天激情| 91色情播放| 99热8| 综合久久综合久久| 天天插天天插天天插天天插 | 99精彩视频在线观看| 麻豆忘忧草午夜| 激情丁香久久| 美女91一起草| 亭亭色网| 天天天天天天天干| 人妻久久久久久久久妻久久久久久久久| 久久五月视频| 天天做天天爱天天搞| 可以免费看av网站| 五月色婷婷激情| 色久激情在线| 欧美色五月| 狠狠色婷婷7777久| 亚洲精品99| 亚洲精级| 亚洲色夜| 99综合视频一体| 五月婷婷久久开心网| 色婷婷五月天天天干天天操天天爽 | 大香焦啪啪啪| 91干在线视频| 综激情网| 婷婷五月天AV激情| 先锋资源 996| 人人视频色| 激情丁香九九五月综合网| 五月天成人免费视频| 六月婷婷综合| 亚洲精品网址| 五月开心婷婷极品激情| 能看的AV网站| 激情五月综合网| 国产精品美女| 日韩99无码| 色吧五月婷婷| 国产丁香五月天婷婷| 欧美成人精品一区二区| 亚洲综合五月| 99热精品在线观看| 久久日曰| 色热久资源| 亚州操人在线视频| 色欲一区二区三区精品A片| 色青青电影色五月| 99热在线精品观看| 日日鲁鲁夜夜爽爽| 久久婷婷丁香| 国产人妻777人伦精品HD| 伊人丁香五月婷婷潮吹| 99色综合网| www.26uuu.com亚洲电影| AV在线大香蕉| 综合色图婷婷| www激情网站| 丁香五月婷婷六月婷| 五月天六月色| 中字幕视频在线永久在线观看免费| www五月天com| 五月婷婷久久开心网| 亚洲成人婷婷| 激情婷婷| 色色丁香五月天社区| 日本的α片xxxwww| 国产美女视频久| 成熟妇人A片免费看网站 | 免费无码毛片一区二区A片| 99热网址| 婷婷综合在线| 五月激情婷婷国产精品久久久久久 | 久久激情综合| 欧美精品啪啪| 九九色网| 亚洲精品操一操、噜一噜、摸一摸、爽 | 99精品热视频| 99re热免费观看视频精品| www.97碰碰com| 久热9热| 五月丁香久久呀| 99久久综合网| av成人在线播放| 视频色色色色色色| 免费无码毛片一区二区A片| 120分钟婬片免费看| 丁香婷婷情色五月天| 久cao香蕉影院| 琪琪秋霞| 超碰人妻在线| 99热黄| 嫩BBB槡BBBB搡BBBB视频| 色综合五月天| 99啪| 丁香激激情网| 九九精品热播| 9一精品视频观看| 天天搞夜夜爽夜夜爽| 中文字幕在线观看视频www| 91日韩美女被插视频| 日日夜夜狠狠干| 99年操人人爽| 婷婷中文字幕版| 天天干天天拍| 狠狠色丁香久久久婷| 婷婷五月天综合久久| 热久久色| 婷婷伊人五月天| 五月婷婷婷色| 激情五月天小说视频| 国产成人精品一区二三区熟女在线 | 日本操逼九九九九58日本操逼| 中文字幕无码人妻少妇免费视频| 大香蕉综合视频在线| 五月丁香婷婷色色| 九九色综合网| 色色色地址| 五月天狠狠色| 婷婷丁香五月色| 青996青| 色天五月天在线观看视频| 精品九九久久| 噜噜久| 色色色色色综合| 丁香五月天色婷婷| 六月丁香婷婷综合影院| 婷婷五月花丁香| 日韩美女羞羞网站在线观看| 色五月天成人| 97人人看一| 亚州精品久久久久AV无码| 婷婷热色| 激情伊人五月天| 丁香色影院| www.俺去也com| 久操人| 九九99热| 五月丁香激情四射| 婷婷情色五月天| 色玖玖综合网| 亚洲天天| 婷婷天堂综合| 五月天伊人网| 第2色五月婷| 国产看真人毛片爱做A片| 开心五月婷| 黄色aa观看aaguochan| 婷婷五月六月丁香| 97色碰碰公开视频| 9久国产| 五月停亭六月,六月停亭的英语| 婷婷激情五月综合| 激情综合婷婷| 国产亚洲色婷婷久久99精品91| 桃色激情婷婷伊人网| 激情性爱五月天网页| 欧美色图45678| 8090在线影视少妇| 激情5月婷婷狠狠干| 欧美成人在线观看| 成人色站,在线视频,看片-SS1AV| 国产又爽又猛又粗的视频A片| www.激情在线| 婷婷狠狠综合网入口| 色播五月丁香婷婷| 五月婷婷先锋| 欧日韩成人| 91九色精品女同系列| 日本欧美成人片AAAA| 天天夜夜爽| 99在线视频精品| 99久久国产宗和精品1上映| 日日艹思思热| 9月色婷婷| 少妇人妻偷人精品无码视频新浪| 婷婷五月天香蕉| 182TV大香蕉| 中文字幕在线免费观看视频| 欧洲亚洲欧洲99久久| 五月丁香 狠狠爱| 色婷婷中文在线| www。五月天。com| 人人操 色| 欧美激情综合五月色丁香| 激情五月婷婷在线观看|