《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Embedded Coder的ECU數據管理系統開發
基于Embedded Coder的ECU數據管理系統開發
2018年電子技術應用第5期
陰晉冠1,蘇鐵熊1,馮云鵬2,劉 濤3,賈 利3,周慧芳3,張艷崗1
1.中北大學 機電工程學院,山西 太原030051; 2.北京特種車輛研究所,北京100072;3.中國北方發動機研究所,天津300400
摘要: 基于模型的開發(Model Based Development,MBD)在現代汽車電控領域有著廣泛的應用。MATLAB/Simulink軟件作為策略開發和自動代碼生成工具也得到了廣泛的應用。發動機電子控制單元(ECU)開發時間比較早,已經積累了許多可靠性高的C源代碼,在轉入基于模型的開發后不可能遺棄這些資源,所以對新舊模式的整合就十分有必要。傳統手寫查表函數和內存管理函數可靠性高且形成產品規模,所以基于Embedded Coder開發相應的數據管理系統與之相匹配:將原有的數據類型定義移植到MATLAB環境下;創建查表模塊庫代替Simulink中的Lookup Table模塊使之生成代碼后能夠調用原有的查表函數。結果證明所開發的數據管理系統能夠很好地與傳統手寫代碼相匹配,而傳統的經驗也有助于加快基于模型的開發速度。
中圖分類號: TK402;TP319
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.174385
中文引用格式: 陰晉冠,蘇鐵熊,馮云鵬,等. 基于Embedded Coder的ECU數據管理系統開發[J].電子技術應用,2018,44(5):52-55.
英文引用格式: Yin Jinguan,Su Tiexiong,Feng Yunpeng,et al. The development of data management system for ECU based on the Embedded Coder[J]. Application of Electronic Technique,2018,44(5):52-55.
The development of data management system for ECU based on the Embedded Coder
Yin Jinguan1,Su Tiexiong1,Feng Yunpeng2,Liu Tao3,Jia Li3,Zhou Huifang3,Zhang Yangang1
1.College of Mechatronic Engineering,North University of China,Taiyuan 030051,China; 2.Beijing Special Vehicle Research Institute,Beijing 100072,China;3.China North Engine Research Institute,Tianjin 300400,China
Abstract: Model based development(MBD) has been used in modern automotive electronic control field widely. As a strategy development and automatic code generation tool, MATLAB/Simulink software has also been used widely. Engine electronic control unit(ECU) development has a long history, and a lot of reliable C source code has been accumulated. We couldn′t abandon these resources while in the model-based development,so the integration of old and new mode is necessary. Since the traditional hand-written look-up table functions and memory management functions have high reliability and a product level, this article develops the corresponding data management system to match it based on the Embedded Coder. The original data type definition has been imported in to the MATLAB environment. Instead of Lookup Table module in Simulink, a new lookup module library has been created which can generate code to call the original hand-written lookup table function. The result shows that the developed data management system can match the traditional hand-written code well, and the traditional experience also helps to speed up the model based development.
Key words : data management;MBD;Lookup Table module;ECU

0 引言

    基于模型的ECU軟件開發愈加重要[1-2]。對于發動機ECU系統來說,查表模塊要滿足離線數據燒寫和在線標定兩方面的需求:離線燒寫時將查表模塊數據全部定義到固定的Flash區域中,在燒寫時,燒寫工具將該Flash區域的數據全部燒寫為新的值;進行在線標定時,內存管理模塊將Flash中的查表模塊數據拷貝到RAM中,標定RAM中的查表模塊數據,并且讓發動機ECU軟件讀取RAM中的查表模塊數據。因此,需要在查表插值函數中,先通過內存管理模塊得到查表模塊的實際地址,再進行查表插值計算,返回查表結果。而Simulink自帶的Lookup Table模塊,在生成代碼時會自動生成查表插值函數,但是該函數無法調用底層的內存管理模塊,只能使用Flash中的查表模塊數據進行計算,無法滿足在線標定的需求。因此針對原有的底層模塊,自定義開發與之匹配的Simulink查表模塊是十分有必要的。另外,借鑒傳統手寫代碼中有益的經驗,在MATLAB/Simulink環境下開發數據字典對模型中的變量及數據類型進行管理可以減少模型定點化工作,提升開發速度。

1 變量存儲管理

    Simulink提供了名為Simulink的包(Package),用于描述變量的名稱、維數、物理值、取值范圍、單位、描述以及數據類型的名稱[3]。Simulink包在生成代碼時不支持變量的Flash段定義,而是將模型中的變量當做普通變量來處理。另一方面,不同類型的標定變量的存儲結構與查表差值函數的接口定義、數據讀取方法直接相關。尤其對于曲線和曲面變量,Simulink生成代碼時會將模型中的每個變量獨立定義,這就導致屬于同一CUR/MAP的軸參數等出現分散定義的情況,地址不一定連續,順序也很可能是混亂的,這對于查表插值函數的影響相對較小,調整函數接口即可順利讀取到變量的軸數據地址,但是這將給a2l文件的生成帶來極大麻煩,因為很難通過軟件來識別分析每個軸變量分別屬于哪個CUR/MAP,也就無法生成正確的描述信息來描述標定變量。所以要設計專門的包將標定變量定義到指定的Flash段中,從而盡可能減小對已有查表插值函數的改動,并且便于手工修改變量,最大限度兼容已有的手寫代碼的變量結構定義方式。

1.1 數據類型實現

    MATLAB中可以表示浮點數和定點數變量,浮點數變量有兩種表示方法:一種是矩陣類型的變量,使用雙精度浮點數,可在m語言和Simulink中使用;另一種是Parameter數據類,可在Simulink中使用。定點數變量也有兩種表示方法:一種是Parameter數據類;另一種是fi對象,適用于m語言。所以本文使用Parameter數據類來表示數據類型[4-5]。另外,根據從前手寫代碼的經驗和規則,使用斜率和偏移來定義定點數,使用單精度浮點數來表示浮點數,并將以前使用的數據類型都導入到MATLAB中。

1.2 變量及其存儲實現

    在Embedded Coder自動生成代碼時,要盡可能按照不同查表模塊結構定義方式生成變量。基于Embedded Coder的包自定義適合單片機的包,使得Simulink模型中的變量的各項屬性滿足在代碼生成時的各種要求。建立包的過程如圖1所示。

qrs3-t1.gif

    首先創建一個自定義的包,在該包上定義所需的數據類:定義Parameter數據類用于表達標定變量,定義Signal數據類用于表達監控變量。各數據類的屬性會默認繼承Simulink包中相應數據類的屬性。發動機電控系統的查表模塊必須定義在指定的Flash段空間內,所以需要定義數據類的自定義儲存類CSC(Custom Storage Class)來定制變量的儲存屬性,例如數據類型(結構體或非結構體)、內存塊Memory Section(定義變量聲明和定義所在的儲存區域)、鏈接屬性(是否聲明為外部變量)等屬性。

2 創建查表模塊

    查表模塊用于在模型中使用定點或浮點數據查表進行建模仿真,在創建查表模塊時可以分為兩個步驟:查表模塊的封裝和相應的底層內存管理模塊封裝。

2.1 查表模塊封裝

    查表模塊要在Simulink中進行使用,在Simulink環境中可以封裝S函數來實現自定義功能。使用C語言編寫查表模塊的S函數。查表模塊S函數模塊的開發流程如圖2所示,主要分為編寫S函數文件和S函數模塊封裝兩部分。下面以曲線(Curve)模塊為例來詳細描述如何創建查表模塊。

qrs3-t2.gif

    曲線插值查表模塊含有1個輸入、1個輸出和7個參數,7個參數分別為:(1)CUR的x軸變量;(2)CUR的y軸變量;(3)CUR的x軸數據類型;(4)CUR的y軸數據類型;(5)CUR的x軸數據類型編號;(6)CUR的y軸數據類型編號;(7)CUR名稱。

    首先,根據曲線插值查表模塊的特性編寫S函數的C源代碼,其中須包含Simulink規定的必須有的宏定義和頭文件,針對查表模塊還應當包含定點數相關的頭文件等;實現參數的獲取和設置的各種回調方法,具體包括:

    (1)初始化回調:設置S函數的參數信息、狀態信息、輸入輸出端口信息、采樣時間信息、工作向量信息、仿真選項,具體流程如圖3所示。

qrs3-t3.gif

    (2)參數檢查回調,用來檢查x軸數據類型名稱、維數、單調性是否有效,檢查y軸數據類型名稱是否有效、維數是否與x軸一致,具體流程如圖4所示。

qrs3-t4.gif

    (3)采樣時間回調:設置采樣時間信息,具體流程如圖5所示。

    (4)運行時參數回調:用來建立運行時參數(Run-Time Parameter),即將CUR的軸變量注冊成為運行時參數以獲取其儲存值,具體流程如圖6所示。

    (5)輸出回調:用來獲取輸入、CUR數據,設置輸出,流程如圖7所示。

    (6)RTW回調:用戶來將參數傳遞給RTW文件,具體流程如圖8所示。

qrs3-t5+t6.gif

qrs3-t7+t8.gif

    然后,將C源代碼編譯為mex文件。在Simulink中自建模塊庫,使用S-Function模塊完成參數封裝,并與mex文件鏈接,完成查表模塊的封裝。

2.2 底層內存管理模塊封裝

    繼續以曲線插值查表模塊為例,為使該模塊生成的代碼能夠與底層庫中的查表插值函數和內存管理函數相結合,定義以下接口方式使得曲線插值查表模塊生成如下格式的代碼來調用查表插值函數:

    輸出=曲線查表插值函數(x軸Flash地址,x軸點數,x輸入)

    在底層庫的查表插值函數中,首先調用內存管理模塊的接口函數,根據CUR的Flash地址查得其RAM地址,再讀取RAM地址中的CUR,進行查表插值。在代碼生成時,CUR模塊要生成兩部分代碼:一是要生成頭文件中的查表插值函數的聲明語句,只需生成一遍;二是對于每個CUR模塊生成一次查表插值函數調用語句。底層內存管理模塊封裝具體流程如圖9所示。

qrs3-t9.gif

3 仿真與代碼實驗

    在發動機控制系統中使用的數據類型基本上是定點數數據類型。本節以無符號、16位、斜率為2-5、偏移為0的定點類型為例,研究運用定點數所建立的查表模塊在仿真和生成代碼中的表現。實驗通過兩個定點數進行加法、減法、乘法、除法的不溢出和溢出計算來比較定點運算在仿真和代碼中的表現。仿真設計如圖10所示。

qrs3-t10.gif

    實驗中,定點數a_fixed等于1,通過Lookp_1D_CUR查表模塊得出輸出為7.11,由于該定點類型的精度為0.031 25,因此查表得出的輸出為7.125。另一個定點數b_fixed等于11.7,同樣也丟失了一些精度,但在工程應用中還可以接受。從圖10中可以看出,對于不溢出的加法、減法、乘法、不除0除法運算,計算結果受兩個輸入的影響也損失了一定精度。除0在理論上是不存在的,仿真實驗中計算結果為2 047.968 75,即儲存值達到最大值為65 535。d_fixed+e_fixed實驗了溢出加法計算,a_fixed查表后的結果減去b_fixed實驗了溢出減法計算,d_fixed與f_fixed相乘實驗了溢出乘法計算,其結果如圖10所示,與理論計算結果一致。

    將該實驗模型生成代碼后查看其代碼的表現,結果顯示在進行加法、減法、乘法計算時,單片機中的計算結果與前述仿真結果一致。在進行除法計算時,單片機中的計算結果為:如果被除數小于除數,則結果為0,否則結果為商的整數部分。這與仿真結果明顯不同。這是因為Simulink的除法模塊在進行除法計算時,是先將除數與被除數當做浮點數來計算浮點形式的商,然后再用定點類型來顯示這個商。這是定點代碼在代碼中的表現與在仿真中的表現的最大差異處。

4 結論

    本文基于Embedded Coder 進行了發動機的變量存儲管理、查表模塊封裝和底層內存管理模塊封裝,從而定制了生成代碼中的變量定義方式和儲存方式,并將其與底層庫中的查表插值函數接口相匹配,使得查表模塊可以進行仿真計算、離線數據標定,其生成發動機控制代碼能夠支持在線標定和離線燒寫。仿真和代碼實驗結果表明,所建查表模塊可以滿足開發需求;定點數在仿真和代碼中的表示都會損失一定的精度;定點數在仿真和代碼中進行加法、減法、乘法計算結果一致,除法計算會有差異。

參考文獻

[1] DILLABER E,KENDRICK L,JIN W,et al.Pragmatic strategies for adopting model-based design for embedded applications[J].SAE Technical Paper,2010,2010-01-0935.

[2] HODGE G,YE J,STUART W.Multi-tar-get modeling for embedded software devel-opment for automotive applications[J].SAE Technical Paper,2004,2004-01-0269.

[3] The Math Works Inc.Embedded Coder reference[Z].2015.

[4] ERKKINEN T.Fixed-point ECU development with model-based design[J].SAE Technical Paper,2008,2008-01-0744.

[5] REDDY V,NADARAJAH S,BEALS G.Tips for fixed-point modeling and code generation for simulink[EB/OL].[2017-10-23].http://cn.mathworks.com/matlabcentral/fileexchange/7197-tips-for-fixed-point-modeling-and-code-generation-for-simulink-6.


作者信息:

陰晉冠1,蘇鐵熊1,馮云鵬2,劉  濤3,賈  利3,周慧芳3,張艷崗1

(1.中北大學 機電工程學院,山西 太原030051;

2.北京特種車輛研究所,北京100072;3.中國北方發動機研究所,天津300400)

此內容為AET網站原創,未經授權禁止轉載。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          老**午夜毛片一区二区三区| 欧美日韩亚洲一区二区三区在线| 美女诱惑一区| 美女精品在线| 狠狠爱综合网| 在线一区欧美| 久久久久天天天天| 亚洲小说欧美另类社区| 国产亚洲亚洲| 国产精品a久久久久| 亚洲精品视频啊美女在线直播| 国产日韩三区| 欧美亚州在线观看| 国产精品一级| 韩国一区二区三区美女美女秀| 在线精品一区二区| 久久精品女人天堂| 亚洲高清久久| 亚洲欧美一级二级三级| 国产欧美日韩一区| 一区二区亚洲精品| 欧美一区不卡| 免播放器亚洲| 99伊人成综合| 在线观看的日韩av| 欧美区亚洲区| 久久久久一区| 香蕉久久夜色| 在线视频一区观看| 亚洲激情视频| 伊人久久成人| 韩国一区二区三区在线观看| 久久久久国产精品一区三寸 | 久久综合九色综合久99| 亚洲精品美女| 一区二区视频在线观看| 欧美精品1区| 久久综合网络一区二区| 免费h精品视频在线播放| 一区二区三区四区五区精品视频| 韩日成人在线| 影音先锋亚洲一区| 91久久极品少妇xxxxⅹ软件| 激情欧美一区二区三区| 国产综合色产| 国产精品v一区二区三区| 午夜精品亚洲| 国产一区二区中文| 黄色成人在线网站| 狠狠色狠狠色综合人人| 激情婷婷久久| 99国产成+人+综合+亚洲欧美| 99re热精品| 亚洲综合国产激情另类一区| 久久成人国产| 欧美freesex交免费视频| 欧美激情 亚洲a∨综合| 国语精品中文字幕| 亚洲欧洲一区| 亚洲综合99| 久久亚洲精选| 国产精品红桃| 99热免费精品| 久久久久欧美精品| 国产精品国产亚洲精品看不卡15| 在线播放不卡| 国产精品日韩一区二区| 亚洲女人av| 午夜欧美理论片| 欧美激情在线| 亚洲精品一区二| 午夜在线精品| 亚洲天堂黄色| 性伦欧美刺激片在线观看| 久久青草久久| 在线观看欧美一区| 亚洲欧美精品| 亚洲午夜视频| 欧美综合二区| 亚洲大胆av| 午夜影院日韩| 精品999网站| 久久riav二区三区| 激情视频一区二区三区| 亚洲专区欧美专区| 亚洲视频综合| 久久性天堂网| 国产日韩欧美三区| 欧美1区2区视频| 亚洲黄色高清| 99热在线精品观看| 久久综合图片| 亚洲一区欧美二区| 亚洲精品少妇| 国产精品v亚洲精品v日韩精品| 国产偷国产偷亚洲高清97cao| 欧美午夜在线视频| 久久综合久久综合这里只有精品| 99国产精品私拍| 红桃视频国产一区| 欧美精品一区二区视频| 美女久久网站| 亚洲自拍另类| 国产精品免费一区二区三区在线观看| 黄色在线一区| 狠狠综合久久av一区二区老牛| 久久精品系列| 免费久久99精品国产自| 国产日韩1区| 极品中文字幕一区| 国产主播精品| 国产一区观看| 国产精品magnet| 欧美日韩精品久久| 欧美福利电影在线观看| 老司机久久99久久精品播放免费| 亚洲一区二区网站| 国产视频一区三区| 亚洲一区国产| 免费看的黄色欧美网站| 久久国产精品亚洲va麻豆| 午夜亚洲视频| 久久精品盗摄| 久久综合九色综合欧美狠狠| 亚洲第一在线| 久久精品中文字幕一区二区三区| 亚洲综合三区| 亚洲欧洲午夜| 好看的日韩av电影| 亚洲国产激情| 国产一在线精品一区在线观看| 国产精品国产一区二区| 激情丁香综合| 99国产精品久久久久久久| 国产欧美大片| 久久久精品五月天| 国产精品大片| 99在线观看免费视频精品观看| 一区二区三区四区五区在线| 免费日韩av片| 精品1区2区| 亚洲一区二区三区涩| 久久精品欧洲| 激情偷拍久久| 国产精品综合| 欧美午夜a级限制福利片| 亚洲国产免费看| 亚洲综合另类| 尤物在线精品| 久久中文精品| 亚洲视频播放| 国产一区高清视频| 免费不卡亚洲欧美| 一区视频在线| 欧美在线不卡| 亚洲精品国产精品国自产观看| 免费日韩av片| 亚洲国产日韩欧美| 欧美a级在线| 亚洲一区二区在| 激情成人亚洲| 久久这里只有| 国产精品亚洲产品| 激情综合网址| 欧美日韩a区| 国产区二精品视| 欧美日韩一区二区视频在线| 午夜亚洲性色视频| 一区在线播放| 欧美激情91| 国产精品普通话对白| 好看的av在线不卡观看| 久久亚洲二区| 久久精品日产第一区二区 | 欧美区一区二| 国产欧美大片| 欧美福利一区二区三区| 国产精品分类| 久久国产成人| 国产亚洲综合精品| 亚洲国产电影| 国产综合视频| 午夜精品一区二区在线观看| 国产亚洲欧美一区二区| 亚洲开发第一视频在线播放| 亚洲无线一线二线三线区别av| 久久久福利视频| 美女久久网站| 香蕉久久a毛片| 国产精品免费在线 | 久久亚洲国产精品一区二区 | 国内精品久久久久久久97牛牛 | 在线欧美亚洲| 伊人久久大香线蕉综合热线 | 女生裸体视频一区二区三区| 先锋亚洲精品| 久久精品123| 美女精品网站| 午夜精品久久久久99热蜜桃导演| 欧美激情91| 国内成人在线| 亚洲精品婷婷| 午夜在线精品| 欧美日本韩国一区二区三区| 国产一区欧美| 亚洲精品资源| 欧美亚洲一区二区三区| 午夜精品久久| 久久综合一区| 亚洲欧美日韩精品综合在线观看| 在线观看视频免费一区二区三区| 亚洲天堂男人| 亚洲欧洲精品一区| 国产一级精品aaaaa看| 亚洲欧美激情诱惑| 亚洲国产成人不卡| 久久婷婷久久| 欧美一区综合| 欧美日韩精品免费观看视频完整| 国产精品乱子乱xxxx| 亚洲女人av| 国产精品三上| 欧美不卡三区| 亚洲欧洲日本一区二区三区| 亚洲一区二区三区高清不卡| 欧美激情第二页| 亚洲精品黄色| 欧美在线看片| 亚洲精品在线二区| 欧美一区二区三区另类| 亚洲激情国产| 久久美女性网| 日韩一级精品| 欧美日韩国产不卡在线看| 亚洲精品欧洲| 欧美日韩国产不卡在线看| 亚洲麻豆av| 欧美视频在线观看| 国产伦精品一区二区三区高清版| 欧美日韩亚洲一区三区 | 99av国产精品欲麻豆| 女同一区二区| 国产精品久久久久毛片大屁完整版 | 国内精品福利| 免费在线播放第一区高清av| 亚洲成色最大综合在线| 久久综合九色综合网站| 国产精品久久久久9999高清| 国外成人免费视频| 久久久国产精品一区二区中文| 亚洲麻豆视频| 在线成人黄色| 在线播放精品| 红桃视频国产一区| 国产精品v日韩精品v欧美精品网站| 午夜亚洲伦理| 国产精品一页| 亚洲综合日韩| 亚洲欧美日本国产专区一区| 99精品欧美一区二区三区| 在线日韩av永久免费观看| 狠狠色噜噜狠狠色综合久| 欧美日韩亚洲一区| 国产一区亚洲| 亚洲无线视频| 精品成人国产| 亚洲电影av| 日韩视频精品| 在线视频欧美一区| 国产精品乱子乱xxxx| 亚洲在线观看| 久久久久se| 欧美一区二区三区在线免费观看| 美女精品在线| 午夜国产欧美理论在线播放| 久久一区欧美| 欧美日韩在线精品| 在线日韩av| 国产精品视频免费观看| 麻豆精品视频| 午夜久久福利| 亚洲一级电影| 国产一区二区高清| 久久人人精品| 国产精品v欧美精品v日韩| 国内精品久久久久久久97牛牛| 亚洲黄色免费| 免费视频一区二区三区在线观看| 欧美在线免费| 极品av少妇一区二区| 日韩午夜视频在线观看| 亚洲欧美日韩精品在线| 欧美一区影院| 亚洲国产欧美国产综合一区| 国产精品久久久一区二区三区| 久久精品亚洲一区二区| 国外成人免费视频| 午夜一级在线看亚洲| 国产精品www994| 在线视频一区观看| 欧美成人蜜桃| 在线亚洲精品| 欧美日韩一区二区国产| 国产美女诱惑一区二区| 欧美黄色aaaa| 中文在线不卡| 欧美日韩一区综合| 国产精品社区| 伊人精品视频| 老司机免费视频久久| aⅴ色国产欧美| 欧美午夜电影在线观看 | 免费亚洲一区二区| 在线观看福利一区| 欧美不卡福利| 亚洲综合欧美日韩| 尹人成人综合网| 欧美激情性爽国产精品17p| 国产精品伊人日日| 亚洲美女色禁图| 精品69视频一区二区三区Q| 免费在线日韩av| 国产欧美一区二区三区另类精品| 国产精品分类| 欧美国产三区| 欧美在线看片| 欧美96在线丨欧| 久久久久久亚洲精品杨幂换脸 | 国产精品日韩| 亚洲高清电影| 亚洲精品婷婷| 国一区二区在线观看| 久久久久久网| 久久精品导航| 新狼窝色av性久久久久久| 日韩午夜在线| 亚洲区一区二区三区| 亚洲无玛一区| 国语精品中文字幕| 亚洲视频中文| 国产一区久久| 韩国在线一区| 激情欧美一区| 在线观看视频日韩| 亚洲黄色免费| 亚洲麻豆视频| 国产日韩在线一区二区三区| 日韩亚洲不卡在线| 国产日韩三区| 免费欧美在线| 久久久综合网| 欧美人成网站| 雨宫琴音一区二区在线| 亚洲三级毛片| 国产精品午夜av在线| 欧美综合77777色婷婷| 久久亚洲精选| 狠狠入ady亚洲精品| 91久久精品一区二区别| 制服诱惑一区二区| 噜噜噜躁狠狠躁狠狠精品视频| 久久免费国产| 国语自产精品视频在线看8查询8| 亚洲视频欧美在线| 国产欧美一区二区视频| 久久激情中文| 精品9999| 欧美中文日韩| 禁久久精品乱码| 性色一区二区| 亚洲午夜激情| 久久福利精品| 亚洲第一毛片| 久久国产精品一区二区三区| 欧美日韩在线播放一区二区| 日韩香蕉视频| 欧美日韩一区二区三区免费| 99热精品在线| 欧美福利一区| 国产视频在线观看一区| 欧美日韩mv| 香蕉视频成人在线观看| 精品av久久久久电影| 久久精品一区二区国产| 最新日韩av| 欧美日韩亚洲一区二区三区在线观看| 99热精品在线| 国产一区二区无遮挡| 男女av一区三区二区色多| 亚洲经典视频在线观看| 欧美一区二区三区在线播放 | 91久久综合| 欧美天天在线| 久久精品91| 亚洲少妇自拍| 黄色日韩在线| 欧美99久久| 六月婷婷一区| 国产精品乱看| 亚洲日韩成人|