亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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) 簡介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及多場景示例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)場總線的健壯性設(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)注冊表。它面向的是真實(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í)只申請一塊固定大小的CO_Data結(jié)構(gòu)體含對(duì)象字典、PDO 配置、SDO 緩沖區(qū)等其尺寸在編譯期由宏CO_SIZE和CO_OBJ_DICTIONARY_SIZE精確控制。對(duì)比某主流商用 CANopen 棧以下簡稱 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í)測于 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避開總線爭用。// 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)境下的競態(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)而主站卻無法感知因心跳檢測也在同任務(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í)即確定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)程請求時(shí)立即填充 PDO 數(shù)據(jù)并回傳無需等待下一個(gè) SYNC 邊沿——這對(duì)急停信號(hào)、安全 IO 等低延遲場景至關(guān)重要。我們曾在一個(gè)電梯門控模塊中驗(yàn)證啟用 RTR 模式后從檢測到光幕中斷到驅(qū)動(dòng)器收到關(guān)門指令端到端延遲穩(wěn)定在 180μs示波器實(shí)測而關(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/下的文件完成這是長期維護(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. 注冊底層驅(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 本身不檢測終端電阻但物理層信號(hào)質(zhì)量差會(huì)導(dǎo)致接收器采樣失敗。當(dāng)總線長度 30m 或節(jié)點(diǎn)數(shù) 5 時(shí)若僅在兩端加 120Ω 電阻中間節(jié)點(diǎn)的反射波會(huì)疊加在有效信號(hào)上使某些節(jié)點(diǎn)的 CAN_RX 引腳電壓波動(dòng)超出顯性/隱性閾值。解決用萬用表測量 CAN_H 與 CAN_L 間電阻。理想值應(yīng)為 60Ω兩個(gè) 120Ω 并聯(lián)。若測得 120Ω說明只有一端有電阻若測得 ∞說明兩端均無。必須在總線物理拓?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)勢在于主站可復(fù)用現(xiàn)有 SDO 工具如 CANopenNodeEditor從站無需額外解析邏輯全部交由 CANfestival 的 SDO 服務(wù)端處理。5.2 對(duì)象字典擴(kuò)展聲明 0x1F50 子索引并注冊回調(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可變長 [1F50sub2] ParameterNameData ObjectType0x07 DataType0x000F AccessTyperw然后在co_objdict.c生成后手動(dòng)添加 SDO 回調(diào)注冊在CO_init()之后// 注冊 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天美传媒| 天堂射| 欧美精品丝袜久久久中文字幕| 亚洲熟女乱综合一区二区三区| 亚洲无码日韩电影| 午夜欧美女人操逼| 亚洲精品国产精品乱码不卡| 国产自制av蜜乳| 午夜理论片在线观看免费| 思思在线免费视频| 成人久久久精品| 亚洲AV成人精品网站在AV| 2020国产精品| 亚洲少妇免费视频\| 岛国在线免费视频| 日日AV加勒比| 亚洲伊人成综合成人网| 超碰人人乐97| 一级一性爱免费视频| 亚洲欧美在线观看无码| 亚洲少妇激情视频| 91女在线观看| 99999亚洲| 亚洲欧美日韩综合在线尤物 | 啊啊啊好大好深| 丰满人妻一区二区三区四区| 精吧天堂| 欧美色视频在线| 久9久9精品| 久九九九九九九九热| 911粉嫩人妻| 男人的天堂久久狠| 福利视频一区二区微拍| 色亚洲欧美| 国产偷拍自拍在线视频| 色哟哟精品1精品2| 日韩偷拍色图| 国产成人手机视频激情| 任你干在线视频| 校园春色综合网| 天天综合网91入口| 三级网色| 亚洲诱惑天堂| 中文字幕成人| 精品国产Av无码久久久亚洲| 欧美大色交| 国产亚洲色婷婷久久99精品91葵花宝典| AV色五月天| 欧美黄色片在线播放| 天美传媒Av在线| 操迟操逼在巾线Fre看| 日韩激情视频| 成人资源中文字幕在线观看天天| 精品传媒在线一区| 91爰爱欧美| 五月丁香社区婷婷日韩欧美精品影院| 亚州男人天堂| 91总综合网| 九九探花视频在线观看| 91亚洲欧美| 精产国品一区二三产品| 中文字幕在线观看二区三区| 亚洲中文字幕在现观看| 国产性感骚丝袜在线| 在线A日本| 国产尤物在线三区| 97热视频在线观看| 手机不卡视频不卡在线一二三区| 一区二区三区激情在线观看| 69视频入口| 久久久噜噜噜久久人妻| 人妻天天操天天爽视频免费| 欧美日韩性爱操大逼| 美女久久久| 超碰97色色| 999亚洲国产视频| 蜜臀AV一区二区三区| 国产精品久久久亚洲一区| 黄色AAAAAAAAAAA大片| 大香蕉99999| 亚洲色图欧美另类在线| Av色五月| av资源在线观看少妇| 国产在线观看一区二区三区| 欧美少妇高潮| 91路www| 小草三级久久观看| 国产精品久久久久av| 无码人妻一区二区三区色欲aⅴ| 男人的天堂三级| 九九国产热| www.色操逼| 久久日韩精品一区二区| 91少妇人妻| 91国产伊人大香蕉| 夜夜 中文视频rt| 中文字幕乱碼在线| 欧美三级一级| 久久久噜噜噜久久久| 99精品成人免费看| 欧美组图日韩亚洲中文字幕| 天天日天天干天天操| 狠久久| 天天影视射综合网| 老汉网| 日本一区二区三区欧美日韩中文字幕| 香蕉在线一区二区三区| 熟妇熟女亚洲天堂网| 亚洲图片偷拍视频区| 在线播放一级无码视频| 操逼视频国产无套| 放黄片放3级黄片没穿衣服| 上床啊啊啊| 久久中久文96| 4tube欧美女厕所| 男人的天堂日韩| 欧美91精彩| 黄网站黄视频网站进入口| oumeisetu综合| 熟妇在线视频一区二区| 日欧操屄视频| 性爱乱伦视频免费| h无码动漫在线观看| 17c在线成人免费A片观看| CCYY草草影院地址入口| 欧美性爱免费短视频| 100啪啪视频大全| 韩国一级做a久久久久| 欧美色图亚洲色| 9久9久9久9久视频网站| 91国产操逼视频| 一级性爱网| juliaann丝袜| 天天干人人看综合| 91精品无码人妻系列| 亚洲无码?第一页| 国产又黄又爽| 人人操人人插 - 百度 - 百度| 91天天综合| 九九九精品成人免费视频小说| 国产一区二区免费福利片| 久久午夜鲁丝片| 1人人看人人摸人人操| 国产亚洲欧美每日在线| 国产精品岛国片在线观看| 一级久久性爱视频| 91超级碰碰碰| 久久熟女人| 精品亚州18| 精品人妻一区二区三区蜜桃视频| 97超碰人妻| 日本1区2区不卡视频| 老司机射| 97精品视频免费| 亚洲激情色片| 久久97精品久久久久久久不卡| 欧美综合第一页| 久久久99免费| 色综合婷婷| 日韩美脚一区二区网站| 亚洲一区二区 麻豆传媒| av橘色网站| 欧美在线播放| 青娱乐老司机视频| 精品性爱无码在线播放| 日本亚洲vr欧美不卡高清专区| 久久仑合| 欧洲一区二区| 精品无码一区二区三区色欲| 成人性爱电影网| 国色天香av| 欧美亚洲综合999| 久久精品久| 亚洲国产精品成人综合| 色99视频| 欧美草草| 视频分类 国内精品| 色鬼在线综合| 免费在线视频97| 亚洲精品xxx| 亚洲 日本 一 二 三| 亚洲自拍欧美色综合| 亚洲色图欧美一区二区不卡| 五月天社区| 99精品久久久久久| 三级AV入口| 激情五月天网| 欧美综合自拍| 97亚洲一区| 玖玖无码超碰| 亚洲色婷婷综合久久久久中文| 欧美综合站| 美女啪欧美一区| 久久久久女教师免费一区| 天天操熟妇| 中文字幕奈奈美被公侵犯| 精品一区二区3区| 九草在线大香蕉| 青娱乐休闲视频在线观看| 8x福利精品第一福利视频导航| 国产超碰| 国产97亚洲| 99丝袜福利在线播放| 一级AAA片一区二区三区| 婷婷激情啪啪| 日本高清有码网址视频| 亚洲AV麻豆Aⅴ无码电影一| 欧美图片色五月天| 蜜区区视频79| 婷婷人妻激情| 青草地一本线一区二区三区| 国产和美国毛片| 夜夜 中文视频rt| 久草热制服丝袜在线观看| 天堂国产AV| 欧美久久婷婷| 97在线免费看| 富二代亚洲精品99| 福利风月五月天影院| 国产日韩精品suv| 久久草草亚洲蜜桃臀| 日韩熟女操逼| 国产操偷| 91ise欧美| 天天插天天插| 97青娱乐超碰久久| 天堂精品| 91综合站| 草草影院最新网址| 日本高清免费一本视频在线观看| 变态乱伦伪娘灌肠一区二区| 嗯嗯啊好大| 精品欧美乱码久| 久久久久ab| 国产毛片在线| 亚洲超碰综合网| 国产小视频91| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 亚洲精品一区二区精品| 久久久禁| 韩国嫰模上门援交视频| 亚洲乱色视频一区、二区在线| www.婷婷| 麻豆AV一区二区| 97日视频| 精品9999| 狠狠婷婷亚洲中文综合久久| 婷婷激情四射| 日本爽爽爽爽爽爽免费视频| 欧美αv.com| 国产树林里野战在线看| 操逼日批| 人妻少妇av在线观看| 成人精品在线免费视频| 精品人妻一区二区三区鲁大师| 夜夜骑操视频| 色原狠狠天天天| 日本506070| 亚洲熟伦熟妇AV无码春色| 无码操逼网| 亚洲激情天堂网| 国产乱色国产精品免费视| 泰国AV在线观看| 国产一区二区三区,在线观看观看| 欧美一二级| 精品无码一区二区三区色欲| 亚洲无线码一区国产欧美国| 无码不卡亚洲成?人片| 99热最新网址| 日韩成人综合网| 1024亚洲中文字幕久在线看片你懂的| 国产精品天美传媒| 91久久堂| 日韩本不卡视频在线观看| 啊啊啊免费| 国产精品不卡av免费在线观看| 一级性爱视频免费观看| 久久久婷婷婷| 九九操久久国产免费视频| 白丝在线一区| 欧美青青视频| 97色欧州| 婷婷色综合| 亚洲网污污污污| 欧美一级做a爰片免费视频| 久射吧| 极品白嫩美女白浆成人福利在线看| 曰本特级特黄特色黄色A级网站高清在线免费看 | 熟女AV一区| 91/欧美| 91麻豆va国产精品| 亚洲 图片 综合91| 欧美亚洲国产91在线| 丁香五月久久| 99久久精品国产系列| 中文字幕天天操| 最近2019中文字幕国语免费版| 免费一二区| 口爆综合网| 好吊色综合| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 一区二区娱乐网站| 乱操9999| 中文字幕在线高清男人的天堂| 操逼大黄片| 国产麻豆91欧美一区二区久久婷婷国产精品| 国产精品久久久久久久久久久久久久久久久久 | 麻豆 美女 丝袜 人妻 中文| 亚洲欧美视| 欧洲精品欧洲精品| 人妻素股| 97欧美色综合| 97视频在线观看网站| 黄色十八禁| 天天综合网亚洲综合网| 狠操91,com| 欧美亚洲厕所精品偷拍91| 久久久久久波多野吉衣高潮| 欧美综合网1| 麻豆人妻少妇在线免费观看| 中文字幕78| 色踪合AV| 加勒比海人人操超碰在线| 992大香蕉| 久久久久久久9999| 国产成人亚洲精品无| 久久国产乱子伦精品免费女,网站| 精品夜夜澡人妻无码AV| 人人妻人人澡人人爽久久av| 精品一区二区国产日韩| 人妻二区| 操逼片国产| 日本三级网页| 五月天激情影院| 99色综合| 激情综合av| 欧美白嫩在线放| 久久爽爽精品| 又黄又硬又粗又长国产视频| 精品综合久久久久久五月天| 99精品成人免费看| 狠狠干综合| 一区二区三区四区姦女| 一区二区不卡免费| 精品一区二区三区麻豆| 久久中文字幕一区不卡| 先锋精品av色鲁| 按摩中文字幕| 日本三级精品| 国产女s强制榨精视频| 在线A日本| 伊人五月天| 久久天天躁日日躁狠狠躁 | 国产精品探花在线| 亚洲中文字幕妇伦久久| 欧美人妖内射| 草莓精品视频在线免费观看| 韩国久久97| 中文久久96| 78超碰| 少妇啪啪自拍| 97国产色综合| 凹凸 69堂 在线播放| 午夜福利1区2区3区| 一区二区三区机械有限公司| 国产男女无套97| 一区二区三区男人的天堂| 国产成人欧美精品在线| 国产在线视视频有精品| 美女黑人91神马| 成人三级片一区二区三区视频| 国产精品久久久久久久无码AV| 亚欧Av| 久久久久久久久久久久黄色 | 高清无码国产亚洲| 最新精品久久蜜桃| 大香蕉综合网| 乱伦Av网| 婷婷香网站| 七月婷婷综合| 欧美熟女少妇| 超碰久超碰久| 不卡啪啪视频| 国产精品大屁股999| 精品国产Av无码久久久亚洲| 性欧美另类高清| 亚洲欧美碰碰| 日本黄 R色 成 人网站| 久久久久78| 国产精品高潮久久久无码| 久碰视频| 日天天九九天堂666| 亚洲成人无码影院| 91精品久久久久久| 五月大香蕉| 男人的天堂久久久| 在线观看AV不卡| 久久91| 色色99| 精品女同一区二区三区| 国产精品亚洲一级av第二区| 日韩欧无码一区二区三区免费不卡| 国产超碰人人爽人人做| 日日碰视频网| 日本123区操B视频| 91中出在线| 婷婷在线精品| 粉嫩av一区二区三区天美传媒| 日韩性爱小视频在线观看| 福利大香蕉| 色香色欲天天综合网天天来吧| 国产精品久久久久久9999| 天天躁日日躁XXXXYY| 免看60秒涩涩视频| 女人天堂AV五区在线| 精品人妻中文字幕高清| 亚洲欧洲第二视频在线观看色图| 人妻中文字幕日韩电影| 黄片www视频免费| 91热情品| 啪啪91| 国产午夜精品在线观看| 91N综合在线| 成人网址在线观看| 思思久热在线精品66| 日韩欧美被操黄免费观看| 最新中文字幕在线亚洲| 综合久久2017| 91久久堂| 视频二区美腿丝袜制服人妻欧美 | 舔人妻中文免费视频| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 理论久久婷婷网 8| 老司机射| 欧美性爽xyxOOOO| 欧美洲精品一级| 国模限制级电影| 精品午夜福利国产一区二区在线观看| 麻豆色99999| 无码一区二区三区四区五区六区七区八区九区十区视频 | 东京热男人的天堂| 天天大干大香蕉| 精品久一区免费| 97国产成人精品免费视频| 熟妇综合一区二区三区| 欲综合网| 成人黄页| 久草色悠悠在线视频| 免費黃色視頻觀看一| 激情五月综合开心五月| 9I1性色影院| 久久超碰大香蕉| 爽爽淫人网| 国产92麻豆天美精品色欲5| 精品无码久久久久久久久果冻糖心| 国产乱码精品久久久久久| 五月香婷婷| 多乙久久久久久| 欧洲性爱无码区| 99re黄| 自拍第一页| 男人久久精品| 日本东京热久久久电影| 人人操人人摸超碰| 狠狠97| 啊啊啊啊好大好硬啊啊啊啊啊 | 韩国一级做A片免费的| 亚洲无码成人精品| 亚洲一区中文精品| 精品人妻中文字幕高清| 亚洲图片欧美色| 大香蕉99re| 欧亚日本情色| 99精品无码| 超碰在线1234区| 国产视频小说| 日本高清熟女久久一区| 欧美在线色| 精品美女少妇一区二区三区| 污污污8888| 美女的肌被草喷水视频| 亚洲棕合电彰| 久热精品色情| 天美欧美国产| 超碰伊人在线| 亚洲天堂久| 91视频女生| 亚洲丝袜二区在线| 色97干| 亚洲人妻久久| 少妇熟女1区2区3区| 国产精品不卡高清在线观看| 国内亚洲高清无码| 国产黄色小视频网站| 中文字幕日韩精品久久| 啪啪免费| 操逼网站地址| 91丨国产丨白浆| 中文有码第五页| 国内操逼视频二区| 啊啊啊啊在线播放| 亚洲高潮影院| 日本精品五区| 大香蕉免费3| 日本无码1| 欧美亚洲中文字幕| 麻豆亚洲Av成人无码一区精品| 久久精品亚洲婷婷| 97超级欧美| 精品9999| 日韩少妇无码| 美女午夜福利免费视频| 久久亚洲av成人无码国产| 狠狠穞A片一區二區三區| 久久综合18p| 亚洲中文电影| 国产精品禁久久久精品| 国产在线播放成人免费| 婷婷丁香九月| 日日操天天操| a人欧美综合天堂麻豆| 欧美九一精品久久久熟妇| 91综合无码| 国产精品久久妻无码网站| 51一区二区三区| 久久乐| 青青草日本中文字幕| 日韩丨制服丨中文|在线| 99热一区二区三区四区| 小视频国产| 伊人久久婷婷| 中文字幕人乱码中文字的预防方法 | 91社操逼| 日韩欧美麻豆大片| q2午夜理论片夜色av| 狠狠超| 一级啊性爱在线视频| 青青草原狼av| 日本新免费二区三区| 夜夜骑天天燥| 九热大香蕉| 中文不卡视频| 色婷婷激一区二区三区 | 日韩一级二级三级免费看完整版| 日韩欧美综合激情| 午夜精品99久久久久传媒| 日本黄页视频在线观看| 97超碰超碰| 久久久久久久久成人av解说| 国产农村妇女精品一| 青草伊人久久| 欧美国产精品| 麻豆AV一区二区| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 日韩啪啪啪视频| 免费视频97| 国产精品岛国片在线观看| 日韩少妇丰满亚洲| 九九九九热| 国产激情综合五月久久| 偷拍五区| A 在线网址| 国产婷婷一区| 尤物视频视频官网| 丰满人妻一区二区三区免费,| 2003天天干夜夜操| 嗯啊抽插大香蕉网页| 爱欲AV| 日本精品五区| 久久人人妻| 欧美色图亚洲色| 色综合99| 亚洲小说视频| 日韩精品区二区三区不卡| 九九九只有精品| 欧美系列在线一区二区| 岛国999| 国产精品久久99日日| 97国产色图| 久久黄色视频一区二区三区 | 自拍丝袜美腿人妻| 百度百度日本操逼| 欧美日韩资源在线| 国产精品永久免费10000| 国产超碰在线一区| 吖在线不卡一区二区国产剧情| 国产男女无套97| 日韩 国产 欧美自拍| 大香蕉欧美伊| 综合五月婷婷亚洲一区| 大香蕉伊然在亚洲91| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 小草av不卡亚洲二区 | 免费国产视频| 亚洲 图片 欧美 色图| 99e久久国产精品| 青青草成人视频在线观看二区| 日本免费中文字幕在线| 无码九九九九| 日本三级久| AV麻豆免费一区| 色综合av综合久久| 精品小视频在线| 天天干夜夜一操| 国内毛片四区| 91狠狠综合久久久久久| 一级@啪啪视频| 一区二区三区四区在线不卡| 大香蕉AV在线| 涩综合导航| 天堂综合| 花野真衣| 国产精品久久久久亚洲av| 91成人亚洲色图| 玖玖97综合 | 九九热九九| 亚洲天天影视综合网| 粉嫩在线一区二区懂色| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 成人婷婷丁香| 国产亚洲深夜激情| 日夜尻逼网| 啊a一区在线| 可以免费观看的日韩av毛片| 欧美国产婷婷久久| 天天插天天操天天摸天天射天天看| 国产亚洲综合欧美一区| 久久久久久99AV无码免费网站| 日韩精品影视| 欧美亚洲第1页| 日韩av在线播放不卡| 午夜小电影在线插入淫高潮| 亚洲一区制服诱惑| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 凹凸视频特色日本特黄| 国产精品免费1区2区视频| 91痴汉| 又黄又粗又硬又长又大| 91丝袜美女国产| 韩国成人精品久久久免费看| 呦呦一区| 国产精品农村妇女| 夜夜夜夜爽| 97视频7| 亚洲性爱高潮影院| 日日碰狠狠添天天爽超| 久久久久久久久久久免费精品| 国产91美女视频| 久久久久久久久久久久九| 啪啪91| 91色久| 亚洲一卡2卡3卡4卡乱码网站 | 九九九久久久| 操熟女91| 欧成人在线| 九色 蝌蚪 熟女自| 欧美亚洲涩涩| 色香在线| 国产精品视频播放| 天堂资源欧美| 偷拍 精品 另类 四区| 香蕉久久国产AV一区二区| 免费看黄视频亚洲网站| 日韩99精品视频综合区| 操国产逼| 一中国女人毛片水真多| 98久久| 成人怡红院| 东北女人高潮视频| 欧美一区二区三区不卡高清视频| 淫淫综合网| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 97综合在线| 久久久成人国产精品无码| 国产精品久久久久久无码红治院| 亚洲欧洲中文日韩女优乱码| 久久亚洲AV无码白度| 天天综合网在线观看| 在线中文字幕视频| 女人久久久| 天天噜| 日韩欧美日韩| 超碰免费人妻人人| 国模私拍一区二区三区神乳| 一级片在线观看高清无码| 老熟女乱伦一区| 人妻啪| 99色热国产视频精品| 久久精品中文字幕无码l| 国产AV激情无码久久无码 | av影片在线观看不卡| 午夜性生活av免费在线看| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 天天综合网网欲色| 午夜福利国产欧美日韩夜夜| 婷婷干黄色| 日日操丁香五月天| 在线精品福利免费播放| 99热啪啪| 一个人在线看的黄色电影网站| 97色欧州| 加勒比久久av| 亚洲色宗合| 手机看片日韩人妻| 亚洲精品中文字幕一区在线视频 | 亚洲图片偷拍视频区| 一二三区在线| 欧亚第一综合网| 少妇蹲下买菜露大唇0| 97碰碰色| 久久久久久人妻一区精品色欧美| 欧日a| 国产丝袜视频| 久草在| 久久久女人| 欧美成人性爱视频在线播放 | 一级毛片电影免费看| 男女性感激情网站| 99性爱视频| 91亚州欧美| 欧美日韩人妻精品一区二区三区 | 人妻精品一区二区三区| 欧美精品久久久久久久丰满| 91精品无码人妻系列| 久久人妻丝袜一区二区三| 日日夜夜草草草| 易易A毛视频| 亚洲啪AⅤ永久无码| 国产亚州日韩欧美看片| 男人的天堂成人的社区| 男人天堂最新手机版在线青青草| 国产色图乱伦| www…国产操逼| 麻豆精品A片免费观看| 青青草在线视频美女| 国产粉嫩蜜臀av一区二区三区| 天天干天天操天天干天天操| 99999精品视频| 后入式999| 人人摸.人人色| av天天在线观看| 久久久一区二区| 亚欧高清| 亚洲天堂区| 无码九九九九| 91香蕉视频在线观看免费| 可以免费观看的av| 日本五区不卡| 啪啪视频亚洲第一| 嗯嗯啊啊啊好舒服| 色九久| 另类 日韩 熟女| 一牛一区二区三区久久| 亚洲精品久久久久毛片A片拉屎| 国产情侣自拍在线播放| 色婷婷久久综合超碰| 蜜臀久久99精品久久久久久-DVD原版全| 91在线视频免费播放| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 三级色影综合网| 91粉嫩萝控精品福利网站_精品影音先锋国| 久久熟妇五十路一区| 校园春色五月天| 丁香六月婷婷| 天天综合~91| 岛园激情| 超碰在线综合97| av日韩手机在线影视| 99色婷婷中文字幕乱色| 高清国产无码av| 九月AV| 亚洲伊人久久综合97| 久草久热| 麻豆久久精品亚洲精品88 | 久久久精品成人国产| 色呦色呦色精品| 岛国视频免费在线观看| 蜜桃一区二区三区| 亚洲蜜乳av| 330dv亚洲成年视频网| 国产精品永久免费10000| 一区中文字幕二区日韩| 思思热在线视频在线| 久久久久9久久久久| 国产精品视频内谢女人| 91丝袜在线观看视频在线观看| 久久人妻| 91最新综合| 亚洲精品乱码线路中文字幕| 黄资源| 日韩人妻 中文字幕| 中出在线视频| 丁香色婷婷| 国产高清自拍| 亚洲五区熟女| 久操网无码在线| 中文熟女五十乱码在线| **一级毛片国产| 97亚洲精品超碰| 一区麻豆 高清中文字幕| 美国黄片aaa| 久久综合久色欧美综合狠狠| 黄色一级视| 久操免费观看| yazhousetuoumei| 一本大道不卡一二三区| 亚洲脚交| 日韩AV电影网站| 欧美探花网| 久久激情视频| 青青操97| 国产精品久久久久亚洲av| 伊人性在线视频| 五月天丁香欧洲日韩| 岛国激情视频在线观看| 精品欧美日韩在线观看| 五月天丁香| 亚洲精品久久久久毛片A片拉屎 | 精品久久久高清无码| 中日992视频| 毛片视频白嫩| 俺去俺来也在线www| 96麻豆精品一区二区三区| 青青操少妇| 丁香六月啪| 欧美大波激情xxxx| 97精品全部| 欧美色图片91| 大香蕉五月天婷婷| 欧美偷拍区| 2020中文字幕在线观看| 婷婷五月天无码 | 久久,精品一二三| se01国产在线视频| 综合欧美亚洲| 男女性扦B| 久艹伊人精品综合在线| 狼人久草| 波多野42部无码喷潮在线观看| 97在线免费视频观看| 亚洲综合射| 国产人伦精品一区二区三区 | 婷婷丁香五月天综合东京热| 试看日韩黄片| 清纯唯美综合| 亚洲天堂美臀在线| 免费看污网站| 亚洲天堂电影精品一区| 99久久精品国产高潮| 五月婷婷丁香六月丁香| 大色综合| 日本不卡一二区| 国产日韩中文字幕欧美| 蜜臀AV成人精品蜜臀| 高潮内射在线| 人妻熟女午夜精品在线| 综合欧美日本三级| 日韩人妻网站| 东京热激情视频一二三区| 日韩中文字幕在线视频观看| 在线a v| 综合影院永久入口国产| 亚洲男人电影天堂| 男人天堂新| 日韩在线观看AV| 大香蕉92| 久久成人午夜狠狠| 9精品久久| 日韩三级在线观看mp4| 久久人妻四季| 亚洲中文制服诱惑| 人妻碰碰碰碰碰碰| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 亚洲男人综合| 欧美性第一页| 精品无吗m| 日本女人久久久| 日本大香蕉综合网红本杳社区| 亚州精品人妻一二三区| 破处bbq| 乱色老一区二区三区的观看方式 | 成年男人的天堂| 色综合中文字幕不卡| 强奸少妇AV导航网| 九九九网页| 性色中出| 日日夜夜青青草母狗| 伊人国产视频| 中文字幕女同在线| 日韩一级二级三级免费看完整版国语版 | 毛片视频白嫩| 亚洲av总站| 18岁禁 茉莉成人久久| 嫩草伊人久久精品| 亚洲 另类 丝袜 自拍 动漫| 天天躁狠狠躁av| 综合一区二区影视| 亚洲狠狠入| 校园春色五月天| www久久国产精品| 久久性爱精品一区| 入口操逼网站| www.天天干| 日韩精彩免费| 91天天c| 久久成人网站| 国产三级片在线观看| 国产精品人妻无码久久久老鸭窝| 国产黄色在线播放观看| 韩国一级AAA| 亚洲精品视频在线播放| 亚州情色j区| 亚洲www91| 超碰色美女| 日本成人在线不卡一区二区三区| 国产一区二区三区免费视频在性观看| 亚洲第一精品在线视频| 亚洲精品aa久久伊人| 黑丝少妇| 大香蕉啪啪啪啪在线| 日韩欧美蜜桃精品久久中文字幕久久 | 天天草AV| 91日韩国产欧美亚洲另类精盘州至城都| 国产精品九九九| 免费看黄视频亚洲网站| 五月婷婷色| 爱爱动态试试看6 0秒| 蜜臀无码一区二区| 精品传媒在线一区| 女同女同恋久久级三级| 亚洲午夜AV| 四季AV综合网址| 国产AV天美传媒一区二区三区| 欧美 亚洲 第一页| 亚洲欧洲综合成人av一区| 五月婷婷AV| 99re69| 少妇贴图| 国产一级特黄大片处女| 五月丁香激情啪啪| 精品国产国产AV| 亚洲色交| 亚洲一区二区精品福利| 好淫网一二三视区| 国产熟女自拍| 97色伦97色伦国产欧美| 女人爽到高潮潮喷18禁网站| 91亚州欧美| 中文字幕乱妇免费视频| 欧美的性爱网站免费| 大香蕉免费乱伦视频| 宅男午夜在线视频| 九九九九一区| 无码最新| 欧色综合| 一区二区高清视频| 亚洲无码一区二区三区三州| 日日A∨| 精品人妻一区二区三区日产| 爱av免费| 97这里只精品| 久久午夜鲁丝片| 伊人天堂在线| 人妻少妇精品久久久久久| 强奸乱伦大香蕉| 亚洲狼狼干综合1| 亚洲男人电影天堂| 九九黄色网| 蜜臀av中文字幕| 国产对白刺激视频| 久久久久中出| 天天网综合| 日本日逼视频网| 久久久噜噜噜久久人妻| 天天谢天天干| 日韩精品人妻系列无码天堂| 91人人操| 91美女中出| 久99在线免费观看视频| 国产成人免费观看在线视频| 久久久久网站-538在线视频-欧美永久乱码 | 色图四区| 九九热精品| 青青草大香蕉视频| 色婷网| 久久久啊啊啊| 五月丁香六月婷综合成人综合| 97超碰总站| 超碰人妻天天干| 久久久专区| 国语国产操逼伊人AV网| 中文一区在线日| 日韩亚洲精品一区二区| 日日夜夜草草草| 中文人妻av高清一区| 狠狠干精品一二三四五六2022| 熟女探花啪啪| 成人熟女视频一区二区三区| 亚洲麻豆av一区二区| 熟妇视频一区二区三区在线观看| 天天干人人看综合| 欧美大香蕉97| 中文字幕一区二区三区高清| 亚洲国产青青| 亚洲AV成人无码久久精品播放| 中文字幕av片| 激情综合久久| 大香蕉78| 久插综合| 久久一级无码精品毛片6| 久久久少妇诱惑精品视频| 激情看片网站| 欧美97色| 一区二区三区四区姦女| 在线无码网站| 97国产精选| 黑丝少妇| 91人精品妻入口| 东北操逼| 久99| J?P?NESEHD熟女熟妇伦| 99青青草国产视频| 成人网站 免费观看| 国产成人精品网站| 有码免费观看| 综合久久久久久久综合网| 热热色青青草| 91色碰| 99re国产精品视频| 人伦四五区| 午夜精品99久久久久传媒| 亚洲**2021在线观看| 亚洲青青草| 天天日少妇逼AV| 眼镜人妻101.com| 97久操| 男人的天堂成人的社区| 国产亚洲精品玖玖玖在线观看| 91久久国产精品| 欧美色66| 国产18精品亚洲精品| 久久伊人最新网址视频| 男人的天堂久久狠| 激情四射婷婷四五月天| 亚洲成人免费中文字幕| 国产又粗又长又大的视频| 激情图片亚洲色图| 色综合九九| 天天插夜夜操| 97日亚洲欧美| 国产青青美女玩逼视频| 久久午夜伦| 国产精品无码av| 三久久久四久久久久| 五毛骚逼极品美女怕怕| 超碰调教97| 91精品久久综合熟女| 美女操逼A A| 欧综合网| 色97国产69香蕉| 超碰97男人| 东京日日夜夜| 成人性爱全视频观看| 国产肏逼网站| 男同专区一区二区三区在线| 色www精品视频在线观看| 91粉芽高清在线一区二区| 亚洲无码一二三区| 国产辣妈在线视频福利| 婷婷丁香人妻| AV男人天堂网| 久久綜合很很很| 嗯啊不要在线观看嗯啊| 亚洲精品a人片在线观看视| 翔田千里无码中出中文字幕| 大香蕉中文在线| 青青草华人在线欧美在线| 欧美 牲| 99999精品成人| 艹我哪美一区无码| 成人综合久久精品色婷婷| 亚洲成人日韩小说| 中文字幕黄片在线| 啊啊嗯嗯好爽| 大鸡巴久久| 青青青草原| 91色s| 亚洲性少妇| 欧美 亚洲 另类 综合| 超碰97资源中文字幕| 色蜜AV| 熟妇人妻精品一区二区视频色欲| www.色操逼| 黄aaaaaaaaaaaaaaaaaa色网站| 曰韩精品视频一区二区| 影音先锋日本乱伦| 美女裸体无遮挡永久免费观看网站| 伊人九九九| 久久久久久久| 97超碰大| 校园春色五月天| 60秒不遮不挡| 欧美综合第一页| 96精品久久| 精品视频一二三中文| 久艹日日日| 好属操| 亚洲无线观看久久| 91色图| 精品欧美不卡在线播放| 精品欧美不卡在线播放| 欧洲特黄毛片免费看欧洲毛片| 97精品免费| 日本影视久久免费| а√天堂资源官网在线资源| 无码人妻一区二区三区色欲aⅴ| 国产美女在线精品免费看| 亚洲97成人在线观看| 妇女性内射冈站HDWWWCOM| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 欧美综合色| 黑人性暴力毛片| 亚欧美综合网| 丰满人妻一区二区三区| 亚洲国产综合图区中文字幕| 张柏芝国产一区在线观看| 沈阳熟女高潮对白视频| 久久久精品91八戒| 日韩精品国产一区二区| 久久精品国产亚洲AV片多多| 国产精选三级在线观看| 97电影院超碰| 日欧美色| 加勒比海成人视频网 | 神马久久啊啊| 精品人妻视频一区二区在线播放| 超碰97人妻自拍| 国产福利合集| 隔壁邻居波多野结衣中文字幕| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 男人的天堂午夜av| 国产97视频免费观看| 人人操av| 久久內射| 成人九九| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 免费αV在线视频| 懂色AV蜜臀无码精品APP| 欧美1727免费观看视频| 青青草视频导航官网| 午夜福利 成人 91| 中文?日韩?免费?精品| 伊人网综合在线视频| 久久久久久国产精品| 5252色欧美在线| 美女十八禁| 中文字幕乱码人妻二区三区| 日韩国产中文字幕| 青苹果影院男人的天堂| 亚洲素人综合|