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

ARTICLE DETAIL

資訊詳情

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

STM32CubeMX正交編碼器配置實戰(zhàn):原理、步驟與踩坑指南

STM32CubeMX正交編碼器配置實戰(zhàn):原理、步驟與踩坑指南 1. 從轉(zhuǎn)輪上的幾根線說起正交編碼器到底解決了什么問題做電機(jī)控制、小車底盤、云臺角度反饋的朋友多半都遇到過同一個困惑怎么準(zhǔn)確知道電機(jī)現(xiàn)在轉(zhuǎn)了多少圈、轉(zhuǎn)向是正還是反用霍爾傳感器只能測個大概用光碼盤配合普通IO讀又得盯著電平邊沿數(shù)脈沖稍微一轉(zhuǎn)快了程序就亂套。直到你接觸了正交編碼器Quadrature Encoder再配合STM32定時器自帶的編碼器模式這件事才真正變得優(yōu)雅起來。正交編碼器本質(zhì)上就是一種通過兩組相位相差90度的方波信號來傳遞位置和方向信息的傳感器。A相和B相各自輸出脈沖電機(jī)每轉(zhuǎn)過一個固定角度就產(chǎn)生一個邊沿。因為兩相信號之間有90度的相位差所以控制器只需要判斷A相和B相誰先跳變、誰后跳變就能知道軸是正轉(zhuǎn)還是反轉(zhuǎn)。更關(guān)鍵的是利用A、B兩相的共同邊沿可以把一圈的物理分辨率直接翻四倍這就是常說的4倍頻。比如編碼器一圈輸出500個脈沖4倍頻之后控制器每圈能分辨2000個計數(shù)單位。STM32的定時器外設(shè)在設(shè)計上就內(nèi)置了編碼器接口模式。也就是說硬件層面已經(jīng)幫你把A、B兩相的判向和計數(shù)邏輯做完了不需要外部判向電路也不需要占用CPU中斷去逐個邊沿判斷。你只需要把編碼器的A、B相接在定時器的兩個通道輸入上配置好工作模式計數(shù)器就會自動加一或減一整個過程零CPU負(fù)擔(dān)。對工程實踐來說這意味著三件事接線簡單、實時性好、分辨率高。接線方面只需兩根信號線加電源地實時性方面計數(shù)由硬件完成不會因為中斷響應(yīng)延遲而丟脈沖分辨率方面天然支持4倍頻不用額外算法就能拿到更精細(xì)的位置信息。我最早接觸這個功能是在做一個雙輪差速小車的時候。當(dāng)時用的是500線增量式編碼器加直流減速電機(jī)MCU是STM32F103RCT6。最初的方案是用外部中斷讀A相再用GPIO判斷B相電平來定方向結(jié)果車速一快中斷頻繁觸發(fā)主循環(huán)直接卡死測速數(shù)據(jù)還時不時跳變。后來換用定時器的編碼器模式整個測速鏈路瞬間輕松了。本文就圍繞STM32CubeMX中的正交編碼器配置完整講一遍原理、配置步驟、代碼集成和實際踩坑經(jīng)驗給正準(zhǔn)備做運(yùn)動控制的朋友一個可直接參考的路徑。2. 硬件層的關(guān)鍵判斷編碼器類型、接口電壓和定時器選型2.1 增量式編碼器與絕對式編碼器的區(qū)別談到正交編碼器第一件事是分清增量式和絕對式。STM32定時器的編碼器模式主要配合增量式編碼器使用。增量式編碼器輸出A、B兩相方波可能還有Z相零位脈沖它的特點(diǎn)是只輸出相對位置變化量斷電后無法記憶絕對位置。絕對式編碼器直接輸出當(dāng)前角度的二進(jìn)制編碼值一般走SPI、SSI或者并口不走定時器編碼器模式這條路。我自己項目里用過兩類增量式編碼器一種是光電式碼盤上刻著密密麻麻的柵格通過光柵透射產(chǎn)生方波信號另一種是磁式利用磁阻傳感器感知磁鐵旋轉(zhuǎn)角度變化輸出也同樣是A、B正交信號。光電式精度高但怕塵土油污磁式抗污染能力強(qiáng)價格相對便宜在小型機(jī)器人關(guān)節(jié)和電機(jī)尾軸上很常見。STM32的編碼器模式對這兩類都適用因為歸根到底它只識別電平跳變和相位關(guān)系不在乎信號是光還是磁產(chǎn)生的。2.2 信號電平匹配3.3V與5V編碼器的處理編碼器供電電壓常見的有5V和3.3V兩種。許多工業(yè)級編碼器都是5V供電輸出高電平是5V這個電壓直接進(jìn)STM32的GPIO是有風(fēng)險的。STM32F1系列的IO容忍5V輸入F4系列的部分IO也標(biāo)注了FTFive-volt tolerant屬性但不是所有引腳都支持。穩(wěn)妥的做法是在CubeMX里查看引腳定義表確認(rèn)選擇的通道引腳帶FT標(biāo)識否則串電阻分壓之后再進(jìn)MCU。我在一個項目中用的是歐姆龍E6B2-CWZ6C額定供電5V到24V輸出是開集電極方式必須外部加上拉電阻才能有明確的高電平。那時候為了省事直接把輸出信號引到F103的PA0和PA1上實測能用但波形邊沿比較緩后來在信號線上并聯(lián)了100pF電容去毛刺波形立刻干凈了不少。如果你的編碼器是推挽輸出邊沿會比較陡直接接3.3V供電的編碼器則最簡單完全不用考慮電平轉(zhuǎn)換。下表是我判斷編碼器接口適配性時常用的參考編碼器輸出類型輸出電平是否可直接接STM32 F1是否可直接接STM32 F4處理方式推挽輸出3.3V0~3.3V是是直接連接推挽輸出5V0~5V多數(shù)引腳可僅FT引腳可確認(rèn)FT或電平轉(zhuǎn)換開集電極輸出需外部上拉視上拉到3.3V或5V視上拉到3.3V或5V上拉到3.3V最安全差分輸出RS-422差分信號否否需要差分轉(zhuǎn)單端電路2.3 定時器選型為什么優(yōu)先選帶編碼器模式的通用定時器STM32家族里高級定時器TIM1、TIM8通用定時器TIM2、TIM3、TIM4、TIM5等都支持編碼器接口模式。選型時主要看三點(diǎn)可用的通道引腳是否和你的PCB走線沖突、計數(shù)器位寬、以及是否有其他外設(shè)搶占同一引腳。F103這種老經(jīng)典TIM2和TIM3的通道引腳映射很常用。TIM2的CH1和CH2可以映射到PA0、PA1或者通過重映射到PA15、PB3TIM3的CH1和CH2可以映射到PA6、PA7或者重映射到PB4、PB5。如果你用了JTAG調(diào)試口PA15、PB3、PB4這些引腳默認(rèn)被調(diào)試功能占用需要先關(guān)閉JTAG才能當(dāng)普通IO用。不要小看這一步很多人配置了半天引腳就是沒反應(yīng)最后發(fā)現(xiàn)是JTAG占用的問題。計數(shù)器位寬方面F103的TIM2和TIM5是32位計數(shù)器TIM3和TIM4是16位。高速旋轉(zhuǎn)時16位計數(shù)器在極高分辨率下可能很快溢出需要額外處理溢出中斷。32位計數(shù)器則寬裕得多。同樣是500線4倍頻電機(jī)最高轉(zhuǎn)速3000轉(zhuǎn)/分鐘每秒產(chǎn)生的脈沖數(shù)是500 × 4 × 50 10000016位計數(shù)器65535的上限在一秒內(nèi)一定會溢出。雖然可以通過溢出中斷配合擴(kuò)展位數(shù)但如果你同時做多路電機(jī)控制溢出中斷會時不時打斷主流程增加復(fù)雜度。這也是我后來做四輪小車時優(yōu)先選TIM2的原因32位計數(shù)器讓位置計數(shù)變得非常省心。另外CubeMX的引腳分配視圖里可以直接搜索TIM2_CH1、TIM2_CH2這樣的復(fù)用功能標(biāo)識誰和誰共用一個引腳會高亮顯示底層引腳沖突一目了然。選定時器時我習(xí)慣先在CubeMX里把引腳分配方案拖一遍確認(rèn)沒有沖突再回去畫PCB能省掉后面不少飛線改板的麻煩。3. 定時器編碼器模式的內(nèi)部機(jī)制計數(shù)方向判定的硬核邏輯3.1 為什么硬件判向比中斷判向更可靠軟件判向的思路通常是A相觸發(fā)外部中斷進(jìn)中斷后讀B相電平高電平代表正轉(zhuǎn)低電平代表反轉(zhuǎn)。這個方法在小車慢速運(yùn)行時沒問題但轉(zhuǎn)速起來之后中斷的響應(yīng)延遲會引入判斷誤差。更麻煩的是如果A相毛刺較多可能在極短時間內(nèi)觸發(fā)多次中斷造成計數(shù)錯誤。硬件編碼器模式?jīng)]有這個問題。STM32的編碼器接口邏輯同時監(jiān)視兩個輸入信號在每個信號邊沿處進(jìn)行一次采樣綜合兩個信號的電平狀態(tài)判斷方向。因為判斷邏輯完全由硬件組合電路實現(xiàn)不依賴指令執(zhí)行速度所以只要信號頻率在定時器時鐘能處理的范圍內(nèi)就不會出錯。判斷方向和計數(shù)的本質(zhì)邏輯可以理解成一個兩輸入的狀態(tài)機(jī)。A、B兩相各有兩個電平狀態(tài)高、低組合起來有四種狀態(tài)。編碼器每轉(zhuǎn)過一個最小角度單位組合狀態(tài)就變化一次變化的方向則決定了計數(shù)器是加一還是減一。這有點(diǎn)像我們判斷一個人往哪邊走看到腳印從左邊挪到右邊就知道他往右走了。硬件在每個邊沿看的是上一個狀態(tài)和當(dāng)前狀態(tài)的關(guān)系而不是單看一路信號。3.2 三種計數(shù)模式為什么不選X1和X2直接上X4STM32的編碼器模式可以在CubeMX里配置三種計數(shù)方式X1模式只在一個通道的邊沿計數(shù)X2模式在兩個通道的邊沿計數(shù)X4模式在四個邊沿計數(shù)也就是每個完整信號周期產(chǎn)生四個計數(shù)脈沖。三種模式的差異直接反映在分辨率上。X1模式一圈計500個數(shù)以500線編碼器為例X2模式一圈計1000個數(shù)X4模式一圈計2000個數(shù)。很多人會糾結(jié)選哪個好我的建議是只要計數(shù)器位數(shù)夠用直接X4模式。X4模式不光分辨率最高而且每個邊沿都在更新計數(shù)器角度變化信息更平滑低速時的測速表現(xiàn)也更細(xì)膩。代價僅僅是計數(shù)器溢出更快但在32位計數(shù)器面前這個代價基本可以忽略。CubeMX中的配置項叫做Encoder Mode下拉里會出現(xiàn)Encoder Mode TI1、Encoder Mode TI2、Encoder Mode TI1 and TI2三個選項。第一個對應(yīng)X1模式第二個對應(yīng)X1模式只是計數(shù)沿選擇的通道不同第三個才是X4模式。填的時候注意別選錯我早期就誤選過Encoder Mode TI1結(jié)果分辨率只到了一半查了半天資料才發(fā)現(xiàn)是這里的問題。3.3 計數(shù)方向、溢出中斷和Counter Period的配合邏輯編碼器模式下計數(shù)器是一個雙向計數(shù)器。有人說編碼器模式下定時器的ARPE自動重裝載預(yù)裝載和重裝載值沒有意義這句話是不準(zhǔn)確的。編碼器模式下計數(shù)器會在0和自動重裝載值之間來回計數(shù)上溢和下溢都會觸發(fā)更新事件。如果你把重裝載值設(shè)為默認(rèn)的65535計數(shù)范圍就是0到65535如果你設(shè)成2000計數(shù)范圍就變成0到2000計數(shù)器到2000后繼續(xù)正轉(zhuǎn)就回0反轉(zhuǎn)從0往下就跳到2000。這個特性非常有用。假設(shè)你的編碼器一圈4倍頻之后正好是2000個脈沖把Counter Period設(shè)為2000那么讀回來的CNT值就直接對應(yīng)當(dāng)前角度在0到2000之間的位置根本不需要額外做取模運(yùn)算。做云臺和機(jī)械臂角度控制時這個特性可以省掉大量運(yùn)算代碼。需要注意的一件事是CubeMX里Counter Period填的值對應(yīng)的是ARR寄存器它決定計數(shù)上限。有人把Encoder Mode配好了但Counter Period還沿用默認(rèn)值運(yùn)行起來發(fā)現(xiàn)計數(shù)到65535就跳變還以為是程序問題。這其實是重裝載值沒有按編碼器一圈的脈沖數(shù)來設(shè)計的典型表現(xiàn)。下面我用一個表格梳理三種模式下的關(guān)鍵參數(shù)建議方便你配置時對照檢查配置項X1模式X2模式X4模式一圈計數(shù)脈沖500線50010002000Counter Period建議值499或500999或10001999或2000低速測速細(xì)膩度一般較好最佳溢出中斷頻率最低中等最高3.4 初始化時清零計數(shù)的兩種方式項目啟動時位置必須從一個已知的狀態(tài)開始。清零計數(shù)器常見有兩種做法一種是調(diào)用__HAL_TIM_SET_COUNTER(htim, 0)直接把計數(shù)器寫入0另一種是開啟定時器后向TIM_SR寄存器的UIF位寫0等待一次更新事件完成清零。實際上最方便的還是第一種因為HAL庫提供現(xiàn)成宏一條語句搞定。如果你接的編碼器有Z相零位脈沖還可以把Z相接在另一個IO上通過外部中斷或者輪詢方式檢測到零位信號時清零計數(shù)器這樣每次上電后機(jī)器都能自動找到機(jī)械原點(diǎn)。對于不帶Z相的編碼器只能采用上電找限位開關(guān)的方式歸零或者在機(jī)械結(jié)構(gòu)上做一個固定參考點(diǎn)讓電機(jī)轉(zhuǎn)到參考點(diǎn)時執(zhí)行一次清零操作。4. STM32CubeMX配置實操一步步點(diǎn)出一份可用的工程4.1 新建工程與時鐘樹設(shè)置打開STM32CubeMX新建工程選擇你的具體芯片型號。這里以STM32F103RCT6為例如果你用的是其他型號流程大同小異。先到Pinout Configuration界面左側(cè)Categories欄里找到SYS把Debug設(shè)為Serial Wire。這一步很重要否則默認(rèn)的JTAG會占用部分引腳后面配置編碼器輸入時可能出現(xiàn)引腳灰色不可選的情況。接著配置RCCHSE選擇Crystal/Ceramic Resonator。然后進(jìn)Clock Configuration把系統(tǒng)時鐘設(shè)為72MHz。F103的編碼器定時器時鐘來自APB1APB1的最高頻率是36MHz但定時器時鐘會自動倍頻到72MHz這個細(xì)節(jié)不用手動干預(yù)。不過你需要知道編碼器模式下定時器能處理的最高信號頻率和這個時鐘有關(guān)72MHz的定時器時鐘足以覆蓋絕大多數(shù)編碼器的信號頻率。4.2 TIM2的Encoder Mode配置細(xì)節(jié)在Categories里找到TIM2點(diǎn)擊進(jìn)去在Mode一欄把Combined Channels設(shè)為Encoder Mode。此時下方會出現(xiàn)兩個輸入通道的配置選項Channel1和Channel2都會自動變成Input Capture Indirect Mode之類的顯示不需要手動修改CubeMX會自動關(guān)聯(lián)。接著在Configuration一欄里設(shè)置參數(shù)Counter Period根據(jù)上一章的公式計算如果500線編碼器用X4模式填1999。填1999的意思是從0數(shù)到1999共2000個值正好對應(yīng)一圈。Encoder Mode選Encoder Mode TI1 and TI2。Polarity默認(rèn)的Rising Edge即可不需要改動。只有在編碼器信號接反、方向反了的時候才考慮通過取反極性來修正方向。有個小技巧在配置完TIM2后到右側(cè)的Pinout視圖確認(rèn)一下TIM2_CH1和TIM2_CH2映射到了哪個引腳。如果不滿意默認(rèn)映射可以在芯片視圖里直接點(diǎn)擊引腳旁邊的復(fù)用功能文字下拉重新選擇。這樣不用改PCB布局也能靈活調(diào)整。4.3 打開中斷還是DMA實際場景的選擇依據(jù)編碼器模式單獨(dú)工作不需要中斷也不需要DMA。計數(shù)器是硬件自己跑的你想讀位置時直接讀CNT寄存器就行。但從工程實用性角度建議開啟更新中斷尤其是需要做測速或者位置溢出管理的時候。在NVIC Settings標(biāo)簽頁里勾選TIM2 global interrupt然后在代碼里實現(xiàn)定時器周期中斷回調(diào)就能實現(xiàn)定期采集位置值。如果你只是偶爾讀取一下當(dāng)前位置比如操作員按鍵觸發(fā)的機(jī)械臂點(diǎn)動就不必開中斷輪詢讀取CNT足夠。開了中斷反而會頻繁打斷主循環(huán)增加功耗和復(fù)雜度。選擇標(biāo)準(zhǔn)只有一個你是否需要在計數(shù)溢出邊界進(jìn)行處理或者需要恒定周期采集數(shù)據(jù)。需要就開不需要就不開。DMA在編碼器場景下的用途不大典型的DMA用法是配合ADC連續(xù)采樣模擬量或是配合串口收發(fā)數(shù)據(jù)編碼器計數(shù)本身沒有DMA的需求。如果你看到別人在編碼器項目里用DMA多半是用DMA搬運(yùn)周期采樣的位置數(shù)據(jù)到內(nèi)存數(shù)組做的是后級數(shù)據(jù)處理不是編碼器模式本身的要求。4.4 生成代碼前的最后檢查清單點(diǎn)擊Project Manager設(shè)置好工程名稱、存儲路徑和工具鏈。這里有幾個容易忽略的檢查點(diǎn)需要確認(rèn)IDE選項要和本機(jī)安裝的版本對應(yīng)MDK-ARM選對應(yīng)版本或者選STM32CubeIDE。代碼生成選項里Generated files框下勾選Generate peripheral initialization as a pair of .c/.h files per peripheral這樣每個外設(shè)單獨(dú)生成文件和頭文件后續(xù)維護(hù)方便。如果勾選了Initialize all peripherals with their default settings可能會把沒配置的外設(shè)也生成初始化代碼增加編譯時間建議不勾。確認(rèn)無誤后點(diǎn)擊GENERATE CODE。生成的工程放在你指定的路徑下打開MDK或者CubeIDE就能直接編譯。注意第一次編譯之前在魔術(shù)棒或項目屬性里檢查C/C編譯器選項是否選中了Use MicroLIB。STM32標(biāo)準(zhǔn)庫全功能時需要較少??臻g也會影響printf之類的重定向這些雖然不是編碼器專屬配置但能讓后續(xù)調(diào)試順暢不少。5. 生成代碼解讀與業(yè)務(wù)代碼集成怎么把CNT變成有用的速度5.1 HAL庫初始化流程里發(fā)生了什么打開生成的tim.c文件你會看到MX_TIM2_Init函數(shù)里面有幾段關(guān)鍵代碼。第一段是會話語句和結(jié)構(gòu)體賦值配置Prescaler、CounterMode、Period和ClockDivision。需要特別注意的是編碼器模式下ClockDivision位置和采樣控制有關(guān)一般默認(rèn)值即可不要去調(diào)整預(yù)分頻值。HAL_TIM_Encoder_Init這個函數(shù)比普通定時器初始化多做了什么它會調(diào)用定時器底層初始化函數(shù)把編碼器模式寫入到定時器的控制寄存器里并配置兩個輸入通道為映射模式。更重要的是它設(shè)置了輸入濾波器的相關(guān)參數(shù)。在CubeMX界面的Input Filter選項里你可以填0到15的數(shù)字。這個濾波器是數(shù)字信號濾波器用于濾除信號線上的窄毛刺。實際工程中如果編碼器線纜較長或者電機(jī)電磁干擾較重把輸入濾波調(diào)到2到4左右能大幅減少誤計數(shù)。調(diào)太高會讓有效信號的最小脈寬變長影響極限轉(zhuǎn)速下的計數(shù)準(zhǔn)確度。5.2 啟動編碼器接口HAL_TIM_Encoder_Start和Start_IT的區(qū)別代碼生成后不會自動啟動定時器。你需要在主程序的初始化階段調(diào)用HAL_TIM_Encoder_Start來啟動編碼器接口。這里有一個常見的坑有人用了編碼器模式但忘了啟動定時器CNT寄存器永遠(yuǎn)是0怎么轉(zhuǎn)電機(jī)都沒反應(yīng)查了老半天。如果開啟了更新中斷則要調(diào)用HAL_TIM_Encoder_Start_IT這樣才能在計數(shù)器溢出時觸發(fā)中斷回調(diào)。不帶_IT的版本永遠(yuǎn)進(jìn)不了中斷。不要記混這兩個接口的名字我在一個四軸機(jī)械臂的項目里就吃過這個虧只調(diào)了Start沒調(diào)Start_IT中斷服務(wù)函數(shù)里怎么調(diào)試都不進(jìn)最后對著手冊逐行查才發(fā)現(xiàn)是調(diào)用錯了API。啟動編碼器之后讀位置的接口是__HAL_TIM_GET_COUNTER(htim2)。這個宏返回當(dāng)前計數(shù)器的值也就是編碼器從啟動或上次清零到現(xiàn)在的位置變化量。如果當(dāng)前方向是反轉(zhuǎn)讀回的值會從計數(shù)上限往下遞減你不需要判斷正負(fù)CNT值本身就是有方向性的位置信息。5.3 周期測速兩次采樣差值與M法測速編碼器最常見的應(yīng)用場景是測速度。M法測速的思路是在固定時間窗口內(nèi)統(tǒng)計脈沖數(shù)用計數(shù)差值除以時間得到速度。實現(xiàn)起來非常簡單開啟一個基礎(chǔ)定時器比如TIM6配置成1ms中斷在中斷回調(diào)里讀取CNT值減去上一次的CNT值差值就是1ms內(nèi)的脈沖變化量。用這個差值乘以一個換算系數(shù)就能得到轉(zhuǎn)速。換算系數(shù)怎么算舉個例子編碼器500線4倍頻后一圈2000個脈沖1ms采到100個脈沖那么每秒就是100000個脈沖除以2000就是50圈/秒也就是3000轉(zhuǎn)/分鐘。代碼里可以寫成 speed_rpm (delta_count * 60) / (2000 * 0.001) / 60簡化之后其實就是按比例算。為了防止計數(shù)器溢出帶來的跳變?nèi)绻麅纱尾钪到^對值超過計數(shù)范圍的一半就做一次補(bǔ)償修正。比如Counter Period設(shè)為1999如果這次讀到100上次讀到1900直接算差值是-1800但實際可能是正轉(zhuǎn)了200個脈沖發(fā)生了回繞需要判斷差值大于半周期就減掉一個滿周期。這個判斷邏輯是測速代碼里最容易出錯的地方務(wù)必處理。5.4 和PWM控制配合一個位置閉環(huán)的最簡樣例有了速度和位置信息就能做最簡單的閉環(huán)控制。比如你要讓電機(jī)轉(zhuǎn)到設(shè)定位置就可以寫一個比例控制器PID里只保留P項int32_t target 1000; // 目標(biāo)位置 int32_t current __HAL_TIM_GET_COUNTER(htim2); int32_t error target - current; int32_t output Kp * error; // 輸出限幅到PWM占空比范圍 __HAL_TIM_SET_COMPARE(htim3, TIM_CHANNEL_1, output);這里的Kp需要實際調(diào)試調(diào)小了響應(yīng)慢調(diào)大了會振蕩。通常的做法是先讓電機(jī)在一個固定占空比下運(yùn)行觀察編碼器讀數(shù)是否穩(wěn)定再逐步加大Kp觀察響應(yīng)曲線。完整的PID還要加上積分項消除靜差和微分項抑制超調(diào)這里只是演示閉環(huán)控制的框架足以說明編碼器數(shù)據(jù)如何注入到控制鏈路中。6. 實測踩坑記錄從波形毛刺到方向反了我遇到過的五個典型問題6.1 A、B相接反導(dǎo)致計數(shù)方向反轉(zhuǎn)這是新手最容易碰到的問題。STM32CubeMX中默認(rèn)的計數(shù)方向是A相超前B相為正轉(zhuǎn)如果你的編碼器線序恰巧反了電機(jī)正轉(zhuǎn)時計數(shù)器的值反而在減小。排查這個問題很簡單手動緩慢正轉(zhuǎn)電機(jī)打開調(diào)試器看CNT值的變化方向。如果發(fā)現(xiàn)反了有兩個解決辦法一是在硬件上把A、B兩相信號對調(diào)二是在CubeMX的Polarity設(shè)置里把其中一個通道的極性設(shè)為Falling Edge。從項目維護(hù)角度看改軟件極性更省事因為不用動接線。需要注意的是改極性不僅會影響計數(shù)方向還會影響計數(shù)邊沿的位置本質(zhì)上等于把采樣點(diǎn)平移了90度。如果你同時還用了Z相零位零位脈沖的位置和計數(shù)器的匹配關(guān)系可能會因此偏一位不過對大多數(shù)應(yīng)用沒有影響。6.2 布線太長導(dǎo)致波形邊沿抖動數(shù)字濾波器的正確設(shè)置編碼器線纜超過30厘米又沒有采用雙絞屏蔽線時A、B相波形邊沿容易出現(xiàn)振鈴和毛刺。毛刺導(dǎo)致的結(jié)果是異常計數(shù)有時正轉(zhuǎn)一下計數(shù)器跳好幾個數(shù)有時反轉(zhuǎn)時計數(shù)反而增加。逐一對硬件進(jìn)行改動可能比較麻煩但STM32定時器自帶的輸入濾波器能在軟件層面解決大部分問題。在CubeMX的Input Filter字段中填入合適值就可以開啟濾波。這個濾波器的原理是只有當(dāng)信號連續(xù)穩(wěn)定N個采樣周期后才確認(rèn)電平變化。Filter值越大抗干擾越強(qiáng)同時對真實信號的延遲也越大。編碼器轉(zhuǎn)速不高時直接把濾波值設(shè)到8都行但高速場合需要核算一下最大可接受延遲。以72MHz定時器時鐘為例Filter值為8時最短可識別的信號脈寬大約是8個采樣周期即大約110納秒的脈沖寬度要求。如果編碼器最高轉(zhuǎn)速下信號脈寬小于這個值就會丟脈沖。6.3 編碼器零點(diǎn)漂移Z相清零與CNT自動回繞的區(qū)別很多編碼器帶有Z相也叫Index信號每圈出一個脈沖。利用Z相可以精確確定機(jī)械零位。有人直接把Z相接在普通IO上在中斷里用軟件清零CNT。另一種實現(xiàn)方式是利用定時器的編碼器接口和Z相輸入的特性在硬件層面自動復(fù)位計數(shù)器但STM32的編碼器模式并不內(nèi)置Z相清零邏輯除非額外使用定時器的外部觸發(fā)復(fù)位功能。如果你需要Z相清零最常規(guī)的做法就是外部中斷加軟件清零。不過要小心Z相脈沖寬度和A相脈寬相關(guān)如果Z相信號在電機(jī)高速旋轉(zhuǎn)時變得很窄外部中斷可能會漏觸發(fā)。我用的E6B2-CWZ6C編碼器Z相脈寬是A相脈寬的四分之一低速完全沒問題高速時最好用輸入捕獲來測量脈寬避免漏掉。6.4 計數(shù)器溢出處理在CubeMX里留足余量的設(shè)計思路如果你用的是16位定時器計數(shù)器溢出是一個繞不開的問題。以500線編碼器X4模式為例Counter Period設(shè)為1999那么它范圍只有0到1999遠(yuǎn)小于65535這種情況下計數(shù)器每隔一圈就會溢出一次。每次溢出都需要在中斷里把溢出計數(shù)值加到一個軟件擴(kuò)展變量里保證位置讀數(shù)的連續(xù)性。實際上處理溢出最簡單的方式是NVIC開啟更新中斷在中斷回調(diào)里判斷更新事件的方向。如果讀取SR中的DIR標(biāo)志位為0表示向下計數(shù)即反轉(zhuǎn)溢出為1表示向上計數(shù)即正轉(zhuǎn)溢出。根據(jù)方向給軟件計數(shù)變量加一或減一最終位置值等于擴(kuò)展變量乘以(Period 1)再加上當(dāng)前CNT值。這塊邏輯雖然不復(fù)雜但涉及臨界段保護(hù)的問題要在中斷里操作共享變量時注意加臨界區(qū)保護(hù)防止主循環(huán)讀數(shù)據(jù)時讀到一半被中斷改寫造成高字節(jié)和低字節(jié)屬于不同時刻的快照。6.5 機(jī)械安裝誤差造成的輕微零速抖動最后說一種比較隱蔽的情況電機(jī)靜止時計數(shù)器讀數(shù)卻在小幅跳動。這種情況多半是機(jī)械振動帶動編碼器碼盤微小擺動A、B相在臨界邊沿附近輕微顫抖導(dǎo)致硬件捕捉到多次跳變。解決方法和毛刺類似適當(dāng)增大輸入濾波值同時在應(yīng)用層做一個小范圍的死區(qū)判斷連續(xù)多次讀到同一位置才認(rèn)為電機(jī)靜止。這一類問題不會影響大范圍運(yùn)動控制但如果你在做云臺增穩(wěn)或精密定位就非常致命。我在做小型云臺時零速抖動導(dǎo)致畫面緩慢漂移排查了很久才發(fā)現(xiàn)是電機(jī)減速箱的微小回程間隙帶動編碼器碼盤抖動最后通過調(diào)高輸入濾波器值和增加死區(qū)閾值解決了。這類經(jīng)驗很難在芯片手冊里找到只能靠現(xiàn)場調(diào)試總結(jié)。7. 數(shù)據(jù)鏈路之外為什么我強(qiáng)烈建議你把編碼器數(shù)據(jù)流單獨(dú)封裝7.1 底層寄存器操作與上層控制邏輯解耦寫編碼器相關(guān)代碼時我強(qiáng)烈建議把編碼器的讀取和處理封裝成獨(dú)立模塊不要在主循環(huán)里直接到處調(diào)用__HAL_TIM_GET_COUNTER。原因很簡單第一如果以后換了MCU平臺只需要修改底層封裝上層控制邏輯完全不用動第二相同的位置數(shù)據(jù)會在不同地方用到比如顯示、閉環(huán)控制、日志如果直接散落在各處代碼改起來苦不堪言。我自己習(xí)慣的封裝方式是這樣的單獨(dú)建一個encoder.c和encoder.h提供Encoder_Init、Encoder_GetPosition、Encoder_GetSpeed、Encoder_Clear等接口。在上層代碼里所有模塊都只調(diào)用這幾個接口看不到任何硬件寄存器操作。調(diào)試的時候也只需要在這幾個接口里加入日志打印就能看到全系統(tǒng)的位置變化情況。7.2 一種更可靠的位置累加方法定時采樣配合溢出補(bǔ)償對于需要長時間記錄位置的應(yīng)用單純依賴CNT寄存器是不夠的因為溢出清零會丟數(shù)據(jù)。推薦的做法是用固定周期定時器中斷比如1kHz讀取一次CNT值并累加到軟件位置變量里同時處理溢出回繞。這樣即使主程序被其他任務(wù)阻塞位置也不會丟。舉個具體實現(xiàn)例子static int32_t last_count 0; static int32_t position_sum 0; #define COUNTER_PERIOD 1999 void Encoder_Tick_1ms(void) { int32_t cur __HAL_TIM_GET_COUNTER(htim2); int32_t delta cur - last_count; if (delta (COUNTER_PERIOD 1) / 2) delta - (COUNTER_PERIOD 1); else if (delta -(COUNTER_PERIOD 1) / 2) delta (COUNTER_PERIOD 1); position_sum delta; last_count cur; } int32_t Encoder_GetPosition(void) { return position_sum; }這個方法把溢出的判斷條件統(tǒng)一封裝在一個中斷函數(shù)里主程序在任何時刻讀取的都是連續(xù)的軟件累加位置徹底擺脫了計數(shù)回繞的困擾。而且position_sum是32位有符號變量即便長時間運(yùn)行也不容易溢出實際項目中一年半載跑下來都沒問題。7.3 使用場景擴(kuò)展從單軸測速到多軸同步如果你的項目不只是一個電機(jī)而是像機(jī)械臂、四輪小車這樣多個電機(jī)協(xié)同工作每個電機(jī)一個定時器測速頻率要保持一致控制周期也要盡量同步。最簡單的方法是利用同一個基礎(chǔ)定時器觸發(fā)所有電機(jī)的采樣中斷在同一個中斷回調(diào)里完成所有編碼器的數(shù)據(jù)采集和速度解算。這樣不同軸之間的數(shù)據(jù)天然同步控制解算不容易出現(xiàn)因為時間戳不一致導(dǎo)致的偏差。多軸系統(tǒng)里的另一個注意點(diǎn)是所有編碼器共用一個電源時多個電機(jī)同時啟動會造成電源電壓跌落可能讓編碼器輸出波形畸變。解決方法是每個編碼器電源附近都加一個去耦電容并且在MCU端的信號線上加RC濾波或施密特觸發(fā)器緩沖。這個細(xì)節(jié)是我們在做四輪小車時發(fā)現(xiàn)的當(dāng)時只給主控供電一個電機(jī)啟動瞬間編碼器讀數(shù)就亂跳排查了很久才發(fā)現(xiàn)是電源軌受到干擾。8. 從配置到穩(wěn)定運(yùn)行的最后一段路我最想讓你記住的三件事回頭再看整個STM32CubeMX正交編碼器方案其實主要就三件事。第一原理上要搞懂A、B兩相正交信號如何通過相位關(guān)系產(chǎn)生位置和方向信息硬件編碼器模式為什么能替代中斷判向方案。第二配置上要選對定時器、選對引腳、選對Encoder Mode和Counter Period這三樣決定了物理層能不能正常計數(shù)。第三工程上要做好溢出處理、信號濾波和模塊封裝這三件事決定了系統(tǒng)長時間跑下來穩(wěn)不穩(wěn)定。最后的建議是不要一上來就追求花哨的算法先把編碼器數(shù)據(jù)讀準(zhǔn)、讀穩(wěn)、讀連續(xù)再談后面的PID和運(yùn)動規(guī)劃。你把一個編碼器通道吃透了其他通道都是復(fù)制粘貼的事情。我自己第一次調(diào)通編碼器模式時看到電機(jī)轉(zhuǎn)一圈讀數(shù)從0走到2000再歸零那種踏實感是單純寫GPIO中斷判向完全體會不到的。希望這篇內(nèi)容能幫你少走幾個彎路一次就把編碼器這塊做利索。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
啪啪啪综合网| 大香蕉国产中文自拍| 国产精品又黄又猛又粗| 婷婷久久五月| 九九热九九热| 后入精品| 欧美操逼熟女| 60秒免费小视频| 伊人影院日本| 国产精品免费视频不卡| 天欧美在线| 成人免费视瓶| 大香蕉在线视频15| 久jiu久神马影院| 三级日本一区二区三区| 思思热影视| 久久av无码| 天天欧美| 日韩精品一区二区日韩| 男女真人网18| 亚洲最大的黄色电影网站。| 五十路一区无码| 日韩成人综合网| 国产欧美日韩臀| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 人人看欧美性爱| 亚洲中文人妻色| 中文字幕99999| 欧美在线播放aaaa| 97在线播放 | 国产农村妇女精品1区二区| 久久久91| 人妻熟女午夜精品在线| 99热伊人| 99精品久久久久久| 久久免费精品视频免一| 欧美91网站| 久久亚洲天天做| 久久 精品| 免费国产电影一区二区| 九九夜精品九九在线| 国产人妻久久精品一区二区三区| 色青青久久影视| 九九九九免费视频| 五月丁香综合激情| 96一区二区| 老色69| 友优传媒精品在线一区二区| 精品国产久热在线观看| 97aiaiai| 色五月婷婷久久| 密臀在线一区尤物| 国产精品熟女乱伦| 天久久久噜噜噜久久国产精品爽爽 | 亚洲色欲一区二区三区| 91综合网在线| 精品国产国产AV| 一区二区三区精品视频| 男人的天堂99| 日韩三级在线观看mp4| 黄色电影观看久久9| 大香蕉日韩欧美| 九九热视频在线观看| 久久久亚洲| 久久亚洲人妻| 成年女人黄网站| 在线 欧美 亚洲| 丁香婷婷久久| 国产精品麻豆免费视频| 精品人妻少妇| 亚洲欧美精品久| 日本精品一区二区中文字幕| 黄人人操人人操| 这里都是精品| 一二区在线观看视频| 色婷婷在线视频精品导航| 亚洲αv一区二区三区| 午夜超碰| 久久9免费视频| 亚洲免费97免费| 操逼操逼逼操操逼91| 97超碰欧美精品| 天天激色| 激情婷婷丁香| 激情综合二| 清纯唯美亚洲综合| 久久岛国| 蜜桃午夜视频一区二区| 久久一留热品黄| AAA久久| 亚洲精品乱码线路中文字幕| 3PAV乱伦视频| 国产精品不卡一区二区三区av| 久久久久极品| 淫穴高潮色图| 加勒比伊人综合| 曰本精品久久久| 欧美1727免费观看视频| 丁香五月天啪啪| 啪一啪免费视频| 亚洲 小说 欧美 激情 另类| 精品久久久久久中文字幕视频免费| 久久久久幕乱码| 九九国产热| 亚洲色资源| 色大师网站www永久网站视频| 一区二区首页| 久久仑合| 91九色丰满高潮| 九九亚洲色在线观看| 亚洲天堂日本| 亚洲女人毛茸茸91| 精品视频一区二区| 中文字幕丝袜| 欧美天天综合| 尹人免费观看视频在线| 性影在线视频| 91久久精品中文字幕| 亚洲色 国产 欧美 日韩| 天天干夜夜一操| 天天视频综合在线观看视频| 午夜欧美女人操逼| 综合色播| 欧美日韩性感| 精品人妻视频一区二区三区蜜桃视频| 午夜毛片高清免费不卡| 免费男人的天堂| 久草精品在线| 日韩精品在线视频,日韩精品……| 欧美爱爱97| 午夜成人爽爽爽爽A片李冰冰| 人人妻碰人人免费| 全球成人中文在线| 青青操97| 无码人妻毛片丰满熟妇精品区| 91亚洲黄色网| 亚洲91在线播放影院| 欧美性爱一级操| 99热| 久久国模av| 日韩电影免费网站麻豆视频| 人人妻人人玩人人澡人人爽| 国产视频一区二区三区在线免费观看 | 97香蕉人人乳| www久久精品| 久操97| 思思视频免费看网站| 亚洲最新中文字幕免费| 欧美亚洲国内自拍| 插入粉嫩少妇视频| 国产白丝精品在线观看| 综合影视国产无码| 有码免费观看| 性高潮久久久久久久久久久| A级毛片在线看免费| 男人a天堂手机在线版| 日本一级一级一级一级| 国产肏屁眼视频| 久久久一二三四区| 秋霞一级鲁丝片A片| 静品嫩模一区二区| 影音先锋一区二区在线资源| 加勒比伊人| 国产精品99久久久www| 天天影视综合网欧美精品| 91 丝袜在线| 国产精品点击进入在线影院高清 | sss视频华人在线| 欧美日韩亚洲少妇寂寞影院正在播放 | 丁香激情网| 午夜福利在线视频1000| 中文区中文字幕免费看| 人妻81p| 超碰三级秋霞| 国产AB视频| 色97干| 色嗨嗨在线| 欧洲Au麻豆| 四虎精品永久在线观看| 韩国黄片aaaa| 亚洲五区熟女| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 天美传媒精品一区二区| 欧美伊人久久综合网| 99re这里只有精品3| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 96免费视频在线| av橘色网站| 亚洲精品乱码线路中文字幕 | 久久一二三四| 91精品无码人妻系列| 精品91摸| 大JI巴好深好爽又大又粗视频| 亚洲第2页| 亚洲精品一二三四区| 亚洲资源站| 色一色综合网| 日本免费一区二区不卡| 国产无马在线| 国产色呦呦| 久久国语| 亚洲成aⅴ人片不卡无码| 日韩成人精品中文字幕| 夜夜嗨一区二区三区三州加勒比| 午夜120视频在线观看| 97色色色综合网站| 亚洲天天做日日做天天谢日日 | 丝袜美腿制服人妻二区中文字幕| 麻豆 亚洲 97| 亚洲阿v天堂无码z2018| 亚洲欧美黄| 91美女丝袜诱惑视频| 91精品国| 五月丁香影视| 超碰91在线| 丁香激情网| 黄页av| 国产丝袜视频| 另类图片综合| 四季AV综合网址| 欧美91精品国产自产| 2020中文字幕| 伊人久久综合影院精品久久久 | 欧美人妻一区| 亚洲精品久久久久久| 国产偷拍自拍在线视频| 亚洲乱熟女一区二区| 99久久9| 亚洲男人电影天堂| 欧美成人免费在线观看| 婷婷五月天久久精品视频一区二区三区 | 中文字幕精品久久久久人妻红杏ⅰ| 欧美青青视频| 超碰日韩美妻| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 色色国产| 欧美一区二区男人天堂| 久草热制服丝袜在线观看 | 亚洲自拍97| www.四虎在线| 综合五月婷婷| 黄片www视频免费| 国内外色色色色色成人视频| 日韩 国产 欧美自拍| 日本精品人妻少妇一区二区| 国产高清MV操逼视频| 国产农村妇女毛片精品久久| 日本免费一区二| 岛国AB视频| 99精品综合久久久久五月天| 欧美专利1区2区3区4区5区免费| 操操吧亚洲乱伦视频| 91中出在线| 91婷婷伊人狠人| 三级激情网站| 性欧美999| AV天堂电影网| 女人高潮抽搐喷水视频网站| 99精品人妻| 国产熟女一区二区丰满| 涩五月婷婷| 成人一级性爱| 伊人麻豆传媒| 无码二级三级| 超碰在线97国产| 精品国产乱码久久久久久久久1| 国产精品不卡一区二区三区av| 夜夜 中文视频rt| 玖玖在线视频| 久久↗↗| 人妻夜夜爽天天爽麻豆三区网站 | 欧美亚洲一级在线观看| 60秒不遮不挡| 久久华人网| 国产精品对白内射| 我爱大香蕉| 香蕉热人人精品| 九九九九精| 色情婷婷久久五月天| 亚洲 日韩 欧美 国产综合体| 黄色电影观看久久9| 欧美 亚洲 第一页| AV女资源| 亚洲精品久久一区二区三区蜜桃臀| 伊人影院在线理论播放| 狠狠干综合| 欧美成人黄网色网站| 国产 亚洲 一二三四| 九九九久久久W精品| 久欲AV| 高树玛利亚无码流出| 97婷婷色| 国产色呦呦| 久操凹凸视频| 岛国视频免费在线观看| 日韩免费看在线黄色片| 日本免费二区三区| 校园春色亚洲色图| 乱人乱色一区二区三区免费| 夜夜国自区| 国产精品久久久久久久久久久久久久久久| 欧美丝袜激情| 亚洲棕合电彰| 99热导航| 亚洲不卡AV在线| 爱爱60秒免费视频| 亚洲图片 91| www鬼畜国产男人的天堂| 婷婷五月色| 免费视频a级毛片免费视频| 少妇干B| 亚洲熟女性高潮久久久| 一牛影视成人片免费| 91精品无码人妻系列| 国产呦精品一区二区三区下载| 亚洲欧综合另类无码一区| 国产一区在线观看无码AV| 亚洲国产奇米影视久久| 国内自拍 日韩激情 99| 99无码| 五月黑AⅤ| 亚洲中文字幕乱码无码一区二区| 夜夜高潮夜夜爽高清视频一 | 欧美91精品国产自产| 在线综合网| 东京热一区二区中文字幕| 日语五十路和六十路亚洲国产精品| 无码精品久久久久久亚洲| 操一操摸一摸| 午夜福利免费精品视频| 动漫爆乳3D奶水一区在线观看 | 少妇啪啪自拍| 国产一区二区在线电影| 激情丁香五月| 91久久午夜无码鲁丝片久久人妻| 亚洲性感丝袜诱惑在线观看| 密臀视频三区免费网站| 国产三级资源在线观看| 国产麻豆福利av在线播放| 久久婷色| 欧美曰韩国产精品| 免费男人的天堂| 91狠狠综合久久| 青青草国产欧美非洲黑人| 国产多人在线观看视频| 成片免费观看视频大全| 99999精品成人| 97超碰总站| 人妻丝袜日本| 在线色导航| 91九色网| 一区二区三区色综合| 九九九九九九九九九国产精品| 亚洲av性爱电影| 中文字幕亚洲热播人妻| 亚洲色人妻综合| 日本 免费 一区二区三区 久久香蕉 | 91操人| 中文有码第五页| 偷拍片久久| 精品视频一二三中文| 八戒无码国产午夜福利| 久久人妻丝袜一区二区三| 中文97国产| 粉嫩AV一区二区夜夜| 一级aaaaa欧美中文字幕录像片| 婷婷五月天激情小说| 久久久久久久久久久999| 日本不卡一区二区三区| 亚洲色婷婷久久91| 丁香五月婷婷色| 国产在线精品电影观看| 狠狠色噜噜狠狠狠狠2018| 精品国产少妇高潮视频| 天天欧美| 国产视频一区二区免费| 欧美999999| 91熟女视频| 五月丁香啪| 国产热av| 国产三区免费在线观看| www.91欧美| AAAA级日本片免费视频| 日本福利社| 欧美激情黑人| 欧美亚洲另类在线蜜桃| 大香蕉啪啪啪啪在线| 欧美一区二区男人天堂| 亚洲情色婷婷五月天| 91亚洲丝袜熟女| 日韩色欲久久一二三四区| 欧美亚男人的天堂| 精品一区二区三区国产| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 欧美日韩理论一区| 久久精品一区二区三区四区五区| 久热伊人99re| 91美女小视频| 天天流夜夜操| 综合色91| 日韩AV电影网站| 久久久555| 99这里有精品| 欧美一级在线观看成人| 九九热免费国产视频婷婷伊人| 美女9118禁| 欧美网站免费| 变态综合色| 99久久久久| 国产中文字幕在线| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 精品国产乱码久久久久久影片| 爱逼综合| 白丝1区2区3区| 26uuu最新| 蜜桃在线观看一区二区三区| 女欧美一区二三区| 国产精品国产自产拍高清AV| 日韩免费a级毛片无码a∨| 人妻精品综合中文字幕在线| 性色av蜜臀av色欲aV| 超碰久在线天天做| 日韩无码成人电影| 亚洲爽图| 久久大陆| 99久久99久久综合| 呦呦一区| 国产一区二区久久| 1000午夜黄色| 精品久久久久久中文字幕视频免费| 少妇国产不卡| 日欧美色| 国产麻豆一区二三区| 日韩欧美~中文字| 美女黄网| 激情国产乱伦Av| 99热思思| 蜜臀在线网站| 国产在线观看91精品一区| 中日韩久久久| 曰本精品久久久| 91欧美巨乳| 综合夜夜| 新版天堂中文资源8在线| 国产高清1234区| 999九九九九国产动| 久久男人的天堂| 国产精品久久久久久久黄无码 | 五月天综合网| 亚洲加勒比久久日本道| 国产免费久久久久| 超碰日韩美妻| 国产成人亚洲精品无码最新在线| 97干在线视频| 欧美亚洲激情一二三| 一区二区三| 久久久久久AV无码免费网站| 色综合av综合久久| 秋霞视频一区二区 | 伊人成人中文字幕久久网| 天天看特黄的免费网站| 中文字幕国产在线天堂| 亚洲成人免费电影| 日韩97精| 欧美另类精品xxxx| 91国产美女丝袜足交精品视频| 久久春色| av九九| 久久久精品中文字幕麻豆| 懂色av一区二区三区天美传媒| 黑人精品成人一区二区三区| 亚洲欧洲日产国产综合网| 超碰成人人人爽人人爽| 中亚av| 高精欧美色| 牛黄色久午久| 精品女同一区| 国产精品亚洲一区二区三区四区| AV男人天堂网| 超97在线精品视频| 欧美色图97| 久久无码成人| 五十路人妻在线| 丰满人妻一区二区三区四区| 极品色社| 好吊色综合| 亚洲人妻一区二区三区| 亚洲天天操| 久久婷婷国产一区二区色| 无码人妻一区二区三区四区老鸭窝| 成人性爱电影网| 99蜜月精品久久| 日韩去日本高清在| 日韩日韩日韩-国产乱码精品一区二区| 日本三级网页| 超碰在线在公开超碰在线在公开| 国产强奸乱伦xd| 九九国产热| 最新啪啪视频| 火箭成精品视频884必出精品| 3571色综合一区二区二区| 啊啊啊啊啊啊好多水| 天天干天天狼在线视频| 超碰色图| 婷婷色综合| 天天综合网网欲色| 亚洲97P| 激情无码日韩| 人妻少妇色综合| 婷婷在线播放| 国产成年女人免费视频播放a| 精品人妻一区二区三区夜夜| 韩国一级婬片A片AAAAA| 亚洲欧美另类小说| 久久综合久色欧美综合狠狠| www.超碰在线| 久久久久久99AV无码免费网站| 久久曰曰| 久久曰曰| 强奸国产精品视频| 久久久久久久| 亚洲一二三| 91|九色|国产熟女| 摸奶性爱视频网站在线免费播放| 精品国产久久乱码| 96精品在线| 强奸乱伦日韩AV| 熟妇视频一区二区三区在线| 日本99一区二区| 91九色精品熟女内射| 热99这里有精品综合久久 | 外国91| 四虎国产成人精品免费一女五男| 日欧操屄视频| 色综合久久av| 嗯嗯啊啊好爽| 噜噜噜噜天天狠狠| 99re只有精品| 97超碰jingpin| 免费av大片| 青草综合| 91bbbbbb| 日本 情色 1区2区3区| 久操操AV电影| 亚洲欧美首页| 久久久久久久久久久久97| 国产一区二区三区久久精品太古里| 色色色综合网| 人人摸人人添人人操| 日韩免费簧片| 懂色Av| 日韩性色| 亚州欧美在线| 亚洲一二三四区在线免费看视频| 超碰97色色| 长长久久免费视频| 韩国黄色片精品久久久 | 99热免费| 婷婷色影院| 欧美日韩国产成人高清| 国产无码成人无码| 狠狠婷婷亚洲中文综合久久| 精品国产乱码久久久| 久久天堂网| 日本中文字幕熟妇| 精品久久久九九九孕妇| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 日韩人妻有码免费视频| 蜜臀99久久精品久久久久久| 亚洲麻豆18发?| 天天日美女的B| 日韩78m视频| 久久只有精品一区二区三区| 啊啊啊啊在线观看网址| 干b在线性社区| 欧美精品第四五页中文字幕在线观看| 熟女在线视频| 欧美熟女激情| 麻豆伊人网| 久久久久9999精品九九九| 国产AV人人 夜夜人人澡| 蜜桃精久三区| 97超碰巨乳| 黄色十八禁| 亚洲九九视频在线观看| 婷婷美人网| 97精品在线| 另类老少妇| 男女啊啊啊| 男人的天堂免费| 亚洲欧美日韩中文播放| 国产农村妇女精品| 亚洲欧洲日本精品中文a∨| 乳欲人妻办公室奶水| AA特级绝黄| 亚洲成人福利电影免费| 欧美一级色| 中文字幕在线观看第二页| 国产天天看| 久操视频在线| 日日爱99| 精品成人动漫一区二区| 日韩精品中文字幕二区| 91蜜臀在线久久久久| 天堂综合| 国产精品乱码久久| 欧美国产欧美在线观看| 亚洲精品亚洲人成人网| 成人无码专区精品视频| 亚洲精品熟妇1区2区3区。| 97色97干| 国产自产一区视频在线| 久久婷婷国产一区二区色| 国产精品国产自产拍高清AV| 97天天插| 粉嫩av平台| 不卡免费av在线播放| 天天操女人| 蜜臀AV成人精品蜜臀AV久久| 五月天AV资源| 久久天天艹| 91欧美| 成 人 影视 一区 二区 三区 四区 | 久久无码电影| 九九精品美女高溯喷水| 曰本特级特黄特色黄色A级网站高清在线免费看| 亚洲毛片久久| 亚洲成?V人片在线观看福利| 天天干天天插| 97操B| 欧美一区二区日韩三区| 国产999精品久久久久久| 精品一国2| 天天看天天日天天操| 无码高清专| 97色爱| 91 欧美| 婷婷激情四射| 亚洲AV色图一区| 欧美18 在线观看| 欧美午夜精品久久久久久超碰| 九99久久| 99亚洲精品| 6080yy午夜理论三级一区二区三区无码| 亚州日韩97| www久久国产精品| 日韩偷拍色图| 加勒比海人人操超碰在线| 亚洲国产欧美中日韩成人综合视频| 嗯嗯啊好大| 国产兽交视频在线播放| 小草精彩毛片| 丝袜美腿亚洲| 亚洲欧美另类少妇精品| 色激情综合网站| 青青青操| 亚洲成a人v欧美综合天堂下载| 婷婷五月天基地| 搡老女人老熟女91老熟女综合网| 婷婷五月天色色| 夜夜嗨TV| 天天色播| 性91| 毛片17S| 成人精品久久久午夜福利| 人人操天天爽| 欧洲性爱无码区| 热天堂一区二区| 麻豆国产精品午夜视频| 大香蕉在线86| 日本一级特级毛片视频| 97久久精品国产| 草草影院最新网址| 加勒比东京热五月天天堂网| 国产精品自在线发布| 素人伊尹大香蕉免费下载视频| 国产午夜无码片在线观看影视| 久久亚码| 91精品国产麻豆国产自产在| 久操国产在线| 精品国产污一区二区三区| 蜜乳av一区二区| 日韩一级二级三级免费看完整版国语版| 福利社区午夜一区二区| 日日嗷| 国产亚洲99久久精品| 国产日韩久久| 中文字幕久久精视频久久大全| 欧美天天干| 国产97综合| 久久精精区一区二区一蜜桃一区二区| 深夜福利黄片| 亚洲日本天堂| 99热精品在线| 日本精品中文字幕视频| 综合网~91综合网| 精品国产乱码久久久久久口爆网站| 亚洲有薄码区久久在线一区| 亚洲精品丝袜-不卡成人免费…… 久久久久成人蜜桃精品 | 超碰国产精品无码| 国产精品另类一区大香蕉| 96精品在线| 亚洲操逼无码| 国产精品精品系列在线观看| 翔田千里A片一区二区| 欧美 亚洲 91| 九九热免费国产视频婷婷伊人五月| 国产精品视频自拍在线| 国产精品久久久久9999小说| 91美女视频在线| 免费AV播放| 无码不卡亚洲成?人片| av2014 日韩在线中文字幕| 欧美天堂日韩三级国产传媒| 色官网在线| 夜夜操美女| 欧美性色欧美| 嗯嗯啊啊日韩精品| 亚洲另类色图片| 99九九久久| 国产高清成人mv在线观看| 亚洲 欧美 精品专区 极品| 97久久国产精品| 亚洲第一页欧美| 精品精品精品| 大香蕉五月天| 永久免费发布性爱网| 人人操 欧美| 东京热毛片177b2viP| 欧美狠狠弄| 丰满人妻一区二区三区免费,| 黄页视频网站野外| 欧美高清色| 日本欧美不卡| 久操视频在线| 亚州乱码中文字幕综合久久久| 狠狠操狠狠插| 日本精品一区二区中文字幕| 99热99在线播放激情| 综合av社区| 91超碰在线| 国产91 丝袜在线播放00-百度| 超碰夫妻97| 97精品视频免费| 美日韩一卡二卡三卡免费人妻精品| 天综合网| 天天狠| 亚洲天堂,男人| 日日狠狠久久偷偷色综合免费| 亚欧成人综合影院| av在线不卡一区二区三区| 1769一区| 麻豆视频国产一区二区| 国产日韩精品suv| 看全色黄大色大片免费视频| 97超碰久久| 精品无人区麻豆乱码1区2区图片| 欲色啪| 91狠狠狠| 综合亚洲网| 诱惑网综合| 一本色道综合久久欧美| 青青青国产手线观看视频2| 91被操| 久久欲| 欧亚日韩三区| 精品一久久久| 熟妇激情| 亚洲综合九九| 欧美AAAA黄片| 亚洲第2页| www网站黄| 日韩情色视频| 国产av热热色| 99在线精品观看视频中文| 亚洲欧洲日韩中文字幕一区| 女沟厕偷窥piss小便| 国产成人无码a| 日本操BAV| 国产精品久久久久中文字幕| 国产在线精品偷| 久久久久久精品免费看A级| 大香蕉黄色一区| 日本 欧美 国产一区| 天天欧美色| 目产99999久久999| 国产AV天美传媒一区二区三区 | 99久re热视频精品98| 777奇米影视777四色| 五月天婷婷色色| 亚洲第一页色| 色色99| 97久久天天综合色天天综合色电影| 亚洲天天天| 欧美极品美女aaaaaa级黄片| 欧美顶级黄色大片免费| 久久婷婷五月| 欧美男女午夜啪啪| 久久久久久免费电影| 伊人影院日本| 91精品无码人妻系列| 色综合一区二区三巨| 久草久日| 亚洲电影中字一区二区| 婷婷AV一区二区三区| 久久久9品一区二区三区| 好湿好紧视频| 亚洲色系另类精品国产| 一区二区三区精品黑丝白丝酒店对鸡 | 中文字幕 国产 精品| 95精品在线| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 大色综合| 欧美精品久久久久久久久88| 超碰97最新人妻| 超碰97COm中文| 亚洲在线网站| 欧美大香蕉同搞| 久久国产精品,久久国产| 国产99999久久精品| 国产女大学生AV| 熟妇在线视频一区二区| 亚洲偷91色| 强奸乱伦AV网址| 狠狠躁AV| 国产自制av蜜乳| 六月婷婷色综合| 国产欧美黑人丰满在线| 好吊色综合| www.色五月| 蜜桃天美传媒AV一区二区三区| 被男人吃奶很爽的毛片| 欧美久热| 日本九九久久99| 黄片免费视频2019| 国产怡红院| 好色综合| 色哟哟的毛片| 91精产一区二区三区| 欧美亚洲特P| 久久性爱免费送| 亭亭在线资源| 国产女人和拘做爰视频| 国产性爱欧美性爱在线| 久久亚洲欧美中文字幕国语| 麻豆黄四叶草网站| 日本韩高清无砖码22o| 欧美综合站| 男人天堂东京热| 免费综合亚洲中文| 色噜噜日韩精品| 色婷婷网| 欧美亚洲特P| 色婷婷丁香五月天| 中文字幕97| 高凊专区人人操| 91视频伊人| 欧美精品 - 91爱爱| 999精品国产高清一区二区| 色爱欲亚洲| 91色五月俺来也| 欧美亚洲自拍另类人妻| 欧美一区二区传媒| 国产白丝精品在线观看| 天天天天做夜夜夜夜做| 亚洲最新av无码成人精品区| 久久99草| www成人啪啪18秘 免费| 欧洲一区二区| 超AV色女| 欧美黄片欧美黄片xxx| 夜夜嗨老熟女AV一区二区三区| 人妻熟女av国产网站| 最新AV在线| 91网18| 在线观看综合精品亚洲| 伊人九九| 欧洲中文字幕| 午夜福利免费精品视频| 亚欧洲日韩国产精品| 精品少妇一区二区三区免费观看| 欧美亚洲天堂| 亚洲天堂资源| 天天天天操| 色色色色日本| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 蜜色网色哟哟| 免费精品人妻一区二区三| 99精品无码| 大香蕉伊利av| 夜夜草网站| 日本东京热久久久电影| 9精品久久| 乱伦Av网| 欧美BT 亚洲色图| 免费农村成人少妇人妻Aa一区二区视频| 人人 操人人 操人人| 九九热三级片| 亚洲诱惑| 志村玲子视频一区二区| 日逼视频日本| jazzjazz国产精品麻豆| 蜜臀在线网站| 免费观看欧美日韩操逼视频| 免费又黄又裸乳的视频| 欧美色图亚洲色| 日韩综合97P| 欧美曰韩国产精品| www.久久| 日韩性爱免费视频在线网站| 中文字幕欧美丝袜07资源| 成人精品欧洲亚洲| 青青草在线视频人人想人人上| www.av在线观看| 一本精品日本在线视频精品| 久久久久久久久久久久97| 久久爽爽精品| 免费看美国人人爽,人人操| 亚洲成人在线高清| 风间由美日韩欧美久久| 91精品成人www| 不卡啪啪视频| 精品毛片av一区二区| 97操| 啊啊啊啊好多水| 韩日自拍| 欧美日韩亚洲国产中文永久天天看| 中文字幕视频在线观看一区二区| 高清在线偷拍自拍视频| 热久久国产| 在线播放成人高清免费视频| 伊人九九九| 亚洲无码日韩电影| 欧美在线|亚洲| 天天综合网AV91| 大香蕉男女超碰精品在线| 大色综合网| 国产精品免费美女视频| 精品美女少妇一区二区| 中文字幕精品亚洲熟女| 69丨亚洲丨精品丨入口免费播放| 日日夜夜天天| 久久秀这里有精品| 99热9| 亚洲色图欧美视频| 999岛国大片| 日韩av乱伦| 日韩美女操b| 免费精品人妻一区二区三| 亚洲一区中文精品| 亚洲无码国产探花在线观看| 日韩免费看在线黄色片| 日韩激情无码影院| 在线播放成人高清免费视频| 国产精品久久久久久久久久久久久久吹| 天天摸天天操视频| 另类小说欧美激情校园春色| 日韩精品资源| 呻吟 欧美 日本 中出| AV色图| 精品无码少妇| 91美女视频在线观看| 女生久久网| 热99这里有精品综合久久| 97视频网站| av激情亚洲五月天| 日韩精品一区二区日韩| 伊人久久大香线蕉无码| 日韩性爱电影一区| 欧美很很操视频| 这里只有精品久久| 婷婷色香| 学生妹天天看| 精品在线78| 亚洲天天综合| 日韩欧美大力操| 啪啪啪精品视频| 日本三级久| 欧美亚洲20p| 天天综合香 ld视频| 好爽免费视频,| 综合网少妇| 日韩综合色网| 玖草在线视频| 亚洲伊人a线观看视频| 少妇厨房愉情理伦片bd在线观看| 青春草A| 中国熟女91| 国产精品懂色tv影视免费观看| 超碰无码加勒比| 日韩高清黄片| 920日本午夜免费| 色情亚洲日本成人| 四虎免费在线观看| 亚洲好看强奸乱伦| 久热婷婷| 青青草原人妻| 日本好吊色视频| 91成人无码| 欧美亚洲一级在线观看| 亚洲图片欧美在线视频| 丁香五月影院| 天堂亚洲精品久久老牛| 久久久夜夜夜| 国产福利影视| 一区 欧美 日韩 麻豆| 无码人妻毛片丰满熟妇精品区| 全国男人天堂网| 无遮挡一级毛片视频免费的| 亚洲AV成人无码一区二区三区在线观看| 天堂岛av| 毛片麻豆91糖心精品毛情片| 日韩欧美蜜桃精品久久中文字幕久久 | WWW4虎| 日本在线15p| 老子午夜伦不卡影院| 天堂8在线新版官网| 亚洲 中文 女同| 99re这里只有精品2| 国产操逼逼网| 91新在线欧美| 综合第一页| 婷婷中文字幕| 尤物视频偷拍免费| 太久视频| 亚洲色人妻综合| 天天日美女的B| 乱伦一二三| 91 亚洲 欧洲| 天天干夜夜操一区二区| 东京热激情视频一二三区| 99久久久无码| 怡红院成人视频| 在线可观看的黄色网址| 色天堂综合| 精品无码一区二区三区色欲| 美女露胸露屁股| 日韩大香蕉AV影片| 日韩AC| 精品人妻高清麻豆av| 性在久久久久久| 国产人妻精品一区二区三区秋霞| 性久久久| 丝袜喷水在线| 日韩激情毛片一级久久久| 久久久亚洲精品电影免费看| 亚洲人成色9999精品久久| 91丝袜| 国产成人亚洲精品自产在线 | 国产精品嫩草影院午夜两性| 日韩AV一起草| 偷拍亚洲情色| 日本一级二级三级网站| 日韩激情视频| 国产一级特黄大片处女| 内射中出日韩在线观看视频| 一级一性爱免费视频| 99久久无色码| 亚洲色狠| 婷婷国产精品九区| 国产精品人妻免费精品| 麻豆久久久久久久久丝袜 | 久久粉色| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴| 91激情国产| 五月天激情四射| 后入式五六区| 综合色色网| 欧美日韩亚洲天堂| 免费看日产一区二区三区| 亚洲综合色图欧美| 日日狠狠久久偷偷色综合免费| 久久9精品| 国产久久一区二区午夜| 欧美色图99| 92福利社视频| 色牛aV| 精品一久久久| 亚洲国产麻豆一区二区三区| 人妻精品一区一区三区蜜桃91| 中文字幕在线观看丝袜| 黄片www视频免费| 成人贴图日韩欧美| 在线国产福利网址导航| 婷婷九月丁香| 亚洲AV资源| 九色在线熟女国产黑人| 快播电影网日韩新片| 天天肏美女| 欧美成人免费在线观看| 亚洲宗合网| 人妻熟女午夜精品在线| 五月丁香激情四射| 日本超碰97日韩精品人妻| 日本 欧美 国产一区| 蜜桃av色偷偷av老熟女| 99久久久无码| 久草视频观看视频在线| 97人人夜| 99re69综合| 加勒比在线观看一区二区| 精品国产乱子伦一区二区三区,精品一| 91色女| 操操操日本的逼| 中文字幕丰满人妻日本| 五月婷在线| 五月丁香综合| 国产不良强奸视频免费看| 九月丁香婷婷| 操逼操网| 国产美女高潮| 91久久国产综合精品| 国产激情综合| 可以在线观看AV的网站| 青娱乐休闲视频在线观看| 日日干夜夜骑| 国产精品网站免费| 日本久久天堂| 一区二区三区亚洲| 外国免费性情大片| 天堂射| 人人喜人人妻| 大香蕉AV在线| 这里只有精品视频在线观看麻豆 | 探花激情视频| 中文字幕精品一区二| 久久久久99精品成人片蜜臀| 九九热精彩视频| www.色五月| 久久肏大逼| 大黄片做爱的大的| 一级一性爱免费视频| 天天草AV| 亚洲人妻熟妇三十三区| 婷婷中文字幕| 丁香五月天激情| 欧美成人A天堂片在线观看| 91黑丝在线| 男人的天堂VA| 99超碰碰| 人妻少妇无码 | 夜夜免费视频| 欧美熟妇操操视频| A啊啊在线观看| 99中出在线| 色嘟嘟人妻天堂网| 少妇一线天久久久久久| 日本理论在线| 亚洲日韩美女中文字幕乱| 亚洲资源站| 久久老女人| 97精品一区二区三区免费| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 强奸乱伦AV网站| 屁股久久久久久久久| 国产AV天美传媒一区二区三区 | 亚洲999综合| 亚洲综合夜色| 蜜臀99久久精品| 亚洲97网站|