国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于KL25的同步時鐘圖像采集

2014-11-30 07:49:20馬旭波王宜懷
計算機工程與設(shè)計 2014年6期
關(guān)鍵詞:微控制器中斷時鐘

馬旭波,王宜懷

(1.蘇州大學(xué)物理科學(xué)與技術(shù)學(xué)院,江蘇蘇州215006;2.蘇州大學(xué)計算機科學(xué)與技術(shù)學(xué)院,江蘇蘇州215006)

0 引言

一般的圖像采集系統(tǒng)微控制器與攝像頭各自使用單獨的外部晶振作為時鐘源,攝像頭與微控制器間的傳輸數(shù)據(jù)屬于異步通信。而且數(shù)字?jǐn)z像頭是高速設(shè)備,與主頻較低的微控制器間存在速率匹配問題。為了使得采集系統(tǒng)中的數(shù)據(jù)傳輸能夠類似CAN、SPI等總線技術(shù)實現(xiàn)時鐘同步,必須人為的引入同步時鐘信號。為解決時鐘同步問題,搭建了一個使用同一時鐘源的圖像采集系統(tǒng),同時通過對攝像頭的減速降頻操作解決兩者間的速率匹配問題,以增加圖像采集的效率。

1 同步時鐘的圖像采集系統(tǒng)簡介

數(shù)字?jǐn)z像頭工作時,每輸出一個像素的灰度值信息,引腳電平狀態(tài)隨即翻轉(zhuǎn)。若微控制器的IO口在電平翻轉(zhuǎn)瞬間采集數(shù)據(jù),此時引腳的電平狀態(tài)是不確定的,采集到點的灰度值與真實值可能存在偏差,反映在圖像上即為噪點。主控芯片與攝像頭的時鐘不同步是致使噪點的主要原因。

與微控制器相比,數(shù)字?jǐn)z像頭在更高的主頻下運行。為協(xié)同微控制器與數(shù)字?jǐn)z像頭的速率,常會外置FIFO芯片作為兩者數(shù)據(jù)傳輸?shù)木彌_區(qū)。但外置FIFO芯片,增大了高速數(shù)據(jù)流傳輸過程中受外界干擾的幾率,帶來更多的噪點。

為了解決這一問題,本文使用微控制器輸出自身時鐘信號作為數(shù)字?jǐn)z像頭的時鐘源。配置微控制器的時鐘分配模塊,利用微控制器輸出低于攝像頭額定頻率的時鐘信號,以替代數(shù)字?jǐn)z像頭的板載時鐘,實現(xiàn)攝像頭的降頻,使攝像頭的輸出速率與微控制器IO口的吞吐能力相匹配。

得益于數(shù)字?jǐn)z像頭的降頻,因此采納主頻較低的飛思卡爾公司的KL25作為主控芯片。該芯片具有媲美51單片機的價格優(yōu)勢,且外設(shè)功能齊全,可搭建一個低成本的圖像采集系統(tǒng)。

1.1 硬件構(gòu)成

本文所采用的主控芯片為飛思卡爾Kinetis系列的一款低功耗芯片KL25。該芯片基于最新的ARM Cortex-M0+架構(gòu),主頻48M,且具有如下特性:

(1)12/16位高速模數(shù)轉(zhuǎn)換。

(2)12位數(shù)模轉(zhuǎn)換。

(3)高速模擬比較器。

(4)具有低功耗的觸摸感應(yīng)功能使芯片從低功耗狀態(tài)下喚醒。

(5)強大的定時器功能廣泛應(yīng)用于電機控制。

(6)針對通信接口如UART、SPI、I2C的低功耗設(shè)置。

(7)采用單一電源供電:不同功耗模式下,輸入電壓在1.71V~3.6V間變化。允許的工作溫度范圍為-40~105℃。

數(shù)字?jǐn)z像頭選用了OmniVision公司型號為ov6620的一款CMOS攝像頭。在未配置攝像頭相關(guān)寄存器的情況下該攝像頭工作于DEFAULT模式,默認(rèn)輸出NAL制式的彩色視頻流,輸出分辨率為356*292,輸出幀率為25fps。NAL制式的掃描方式為隔行,區(qū)分奇偶場。奇場包含每幀圖像的所有奇數(shù)行像素,偶場包含每幀圖像的偶數(shù)行像素。同一幀的奇場偶場的差異相當(dāng)小,因此可以看作是同一幅圖像。

ov6620內(nèi)部集成了兩路高速AD轉(zhuǎn)換模塊,能同時對感光元件中分離出的Y、U/V通道的模擬信號分別進行模數(shù)轉(zhuǎn)換。轉(zhuǎn)換的結(jié)果并行輸出:Y通道輸出8位灰度值,UV通道輸出8位色差信號,YUV這3個分量的比為4:2:2。

1.2 微控制器與攝像頭的時鐘信號

數(shù)字電路中,使用同一時鐘源,是為了確保數(shù)字電路中的各個芯片統(tǒng)一步調(diào)工作。不同于時鐘各自獨立的圖像采集系統(tǒng),本文中數(shù)字?jǐn)z像頭的時鐘倚賴于主控芯片KL25。攝像頭從KL25獲取時鐘信號后經(jīng)由內(nèi)部的鎖相環(huán)分頻或倍頻,輸出產(chǎn)生3路脈沖時鐘信號。ov6620在輸出一場圖像時會同步輸出一個有固定時延的脈沖信號,稱該脈沖信號為像素時鐘或像素脈沖。KL25采集此脈沖的上升沿,作為記錄一場圖像的起始標(biāo)志。同樣,每行的起始點及每個像素點輸出瞬間,也會各自對應(yīng)一路脈沖,分別為行脈沖、像素脈沖或稱為行時鐘、像素時鐘。這三路脈沖的頻率都跟攝像頭的工作頻率有關(guān),且成線性變化。

經(jīng)示波器測量,ov6620使用板載17.3M時鐘的情況下這三路脈沖信號的頻率分別為:Vsyn場脈沖50.1Hz、Href行脈沖14.4kHz、Pclk像素脈沖8.968MHz。然而,KL25總線頻率最高不超過24MHz,即 IO模塊最快只能運行于24MHz。24MHz與8MHz的Pclk信號相比,兩者處于同一數(shù)量級,因此KL25采集該脈沖的壓力較大。

1.3 硬件連接

KL25與攝像頭使用12根杜邦線連接,這13跟杜邦線按類型分為兩組:8根數(shù)據(jù)線、4根時鐘線。

Y0~Y8輸出單個像素的灰度值信息,KL25使用A端口進行采集并把數(shù)據(jù)鎖存入A端口的數(shù)據(jù)寄存器中。該寄存器中鎖存的數(shù)值隨引腳獲取的8路灰度值的變化而不斷更新,更新的頻率即像素時鐘Pclk。硬件連接如圖1所示。

圖1 硬件連接

KL25把分頻后的時鐘信號通過引腳 PTC3輸送至ov6620的XCLK引腳,XCLK引腳為ov6620的外部時鐘輸入端。同時,KL25通過PTA16、PTD5、PTD12這3個引腳分別來采集 ov6620輸出的 Vsyn、Href、Pclk這3路脈沖信號。

2 圖像采集系統(tǒng)的配置工作

在圖像采集開始前,有兩步準(zhǔn)備工作,即對KL25寄存器進行配置以使能相應(yīng)功能。首先,配置KL25的時鐘分配模塊,使KL25能夠輸出低于攝像頭額定頻率的時鐘信號,以實現(xiàn)ov6620的降頻工作。其次,使能DMA傳輸功能,使從引腳獲取的數(shù)據(jù)直接搬運至內(nèi)存中開辟的圖像緩沖區(qū),這樣能極大的提升KL25的讀取速率。

2.1 KL25的時鐘分配輸出

輸出芯片內(nèi)部各時鐘是KL25的GPIO模塊的一項附加功能。KL25的PTC3引腳可通過配置GPIO模塊的信號復(fù)用選擇位從而被選擇為時鐘輸出CLK_OUT功能,在時鐘輸出功能下該引腳能夠輸出系統(tǒng)集成模塊SIM分配的時鐘,且輸出的時鐘源可選擇,有24M總線時鐘、MCG時鐘等等。通過選擇時鐘源,該引腳即能輸出一系列頻率的時鐘信號。

時鐘信號的產(chǎn)生過程如圖4所示。MCG被稱為時鐘發(fā)生模塊,MCG內(nèi)有鎖相環(huán),對外置無源晶振輸入的8M時鐘信號2分頻再24倍頻,輸出產(chǎn)生96M的MCG時鐘。SIM被稱為系統(tǒng)集成模塊,該模塊可對MCG模塊輸出的時鐘進行整數(shù)倍分頻,最終輸出產(chǎn)生4路不同頻率時鐘供片上各模塊使用。時鐘產(chǎn)生流程如圖2所示。

圖2 時鐘產(chǎn)生流程

MCG到GPIO模塊的時鐘分配已經(jīng)在芯片初始化相應(yīng)的代碼中完成了。除選擇引腳復(fù)用功能外,還需要在SIM模塊中配置選擇所要輸出的時鐘。通過選擇時鐘源,PTC3引腳即可輸出MCG時鐘的整數(shù)倍分頻給攝像頭,如24M、12M、6M,由此實現(xiàn)對ov6620的降頻操作。

2.2 使能DM A模塊

KL25作為片上系統(tǒng)內(nèi)部使用AHB或APB總線,使得內(nèi)核與片上外設(shè)能夠交互通信。內(nèi)存與GPIO模塊均可視作片上外設(shè)。為了保存采集到的圖像信息,在芯片運行初始階段需在內(nèi)存中開辟一個緩沖區(qū)即一個大小為圖像分辨率的二維數(shù)組?;叶戎禂?shù)據(jù)傳輸至圖像緩沖區(qū)的實際路徑拐了一個彎,即從GPIO模塊的端口數(shù)據(jù)寄存器,搬運至內(nèi)核通用寄存器,再經(jīng)AHB總線轉(zhuǎn)移至內(nèi)存中緩沖區(qū)。

DMA功能可直接在GPIO模塊與內(nèi)存間建立通道,繞開內(nèi)核通用寄存器,這樣大大加快了傳輸速度。DMA功能主要涉及到3個模塊,具體配置見表1。DMA傳輸?shù)木唧w過程為;通過引腳PTD12檢測來自像素脈沖的上升沿,由此觸發(fā)產(chǎn)生DMA中斷。配置DMA通道的源地址為A端口的數(shù)據(jù)寄存器,目的地址為圖像緩沖區(qū),一次傳輸一個像素點8位的灰度值。最后,在DMA中斷中觸發(fā)一次DMA傳輸,將灰度值存儲到圖像數(shù)組相應(yīng)的位置中去。

表1 DMA 功能的詳細(xì)配置

3 圖像采集系統(tǒng)的原理

ov6620輸出數(shù)據(jù)遵照嚴(yán)格的時序。CMOS感光元件中,每生成一幀圖像,會伴隨輸出一系列時序信號,用來標(biāo)定每場圖像、圖像中每一行及行中每個像素輸出的時間點。每場圖像的像素按照從左到右、從上到下的順序逐個依次輸出。輸出當(dāng)前場的第一個像素點時,Vsyn引腳輸出一個脈沖;當(dāng)一行輸出結(jié)束,下一行開始時,Href引腳也輸出一個脈沖:每個像素點輸出時,Pclk引腳也輸出一個脈沖。通過采集這3路脈沖可對當(dāng)前像素點的行列進行計數(shù),從而確定該點在當(dāng)前場中所處的位置,從而把灰度值存儲到緩沖區(qū)對應(yīng)的地址中去。

3.1 軟件設(shè)計

為了能對脈沖信號實時響應(yīng),采集都在中斷中進行。首先,Vsyn脈沖觸發(fā)產(chǎn)生引腳電平檢測中斷,命名該中斷為場中斷。場中斷被觸發(fā)意味著一場圖像記錄的開始。如圖3所示,進入場中斷后,首先清空上一場圖像的行列計數(shù)信息,然后使能行中斷、DMA中斷。只有在場中斷中,行中斷、DMA中斷才能被觸發(fā),并頻繁搶斷場中斷的運行直至當(dāng)前一場圖像記錄完畢。數(shù)據(jù)傳輸是在DMA中斷中完成的,因此DMA中斷具有最高的優(yōu)先級。

圖像中每一行開始輸出時,觸發(fā)產(chǎn)生行中斷。行中斷的主要功能是進行行計數(shù),行中斷每被觸發(fā)一次行計數(shù)加一。

圖3 中斷流程

每個像素點輸出時,由像素脈沖觸發(fā)DMA中斷。在DMA中斷中,進行列計數(shù)并且根據(jù)當(dāng)前行列信息計算出要存入緩沖區(qū)中的地址,觸發(fā)DMA傳輸將像素存入對應(yīng)地址中。最后判斷該點是否為本場圖像的最后一個點,如果不是最后一點出中斷準(zhǔn)備下一點的采集,如果是最后一點那就禁用行中斷、DMA中斷結(jié)束本場圖像的采集。

一次場中斷結(jié)束,意味著一場圖像采集的完成。實際上,圖像數(shù)據(jù)的采集主要是在DMA中斷中進行的,另兩個中斷所做的僅僅是初始化、計數(shù)等工作,不會搶占過多DMA中斷運行時,以保證采集的實時性。

3.2 噪點產(chǎn)生原因分析

如圖4所示,像素時鐘PCLK處于一個周期的非高電平狀態(tài)時,Y通道才輸出有效數(shù)據(jù)位;其余時段,Y通道的引腳處于不確定狀態(tài)。

圖4 時序

在KL25與ov6620各自使用獨立時鐘的情況下,KL25捕捉到像素時鐘的上升沿后,IO口立即讀取ov6620 Y端口的數(shù)據(jù)。如果恰巧IO口讀取數(shù)據(jù)的瞬間,像素時鐘處在高電平,那讀取的即是引腳處于不確定狀態(tài)下的數(shù)據(jù)。讀取的灰度值必然與周邊點有較大差異,顯示在結(jié)果圖像上為噪點。

3.3 對ov6620的降頻操作

ov6620的板載17.3M無源晶振給ov6620提供額定的時鐘頻率。ov6620內(nèi)部鎖相環(huán)的分頻、倍頻因子是被鎖死的。因此,當(dāng)外部輸入的時鐘信號變化時,鎖相環(huán)輸出時鐘也隨外部時鐘成線性變化。

ov6620的輸出幀率也隨輸入時鐘成線性變化。NAL制式下,輸出幀率額定25fps。經(jīng)示波器測量,攝像頭輸出的場時鐘、行時鐘、像素時鐘頻率分別為50.1Hz、14.4kHz、8.868MHz。當(dāng)給攝像頭輸入12M的時鐘信號時,這3路脈沖信號頻率減少為34.7Hz、9.9kHz、6.151MHz。當(dāng)輸入6M的時鐘信號時,三路脈沖信號的頻率變?yōu)?7.3Hz、4.9kHz、3.076Mhz。

顯然,輸出信號是隨輸入時鐘成線性變化的。因為在ov6620內(nèi)部,鎖相環(huán)對輸入的時鐘信號只會按照鎖定的比例系數(shù)進行分頻,然后分配給內(nèi)部各模塊如CMOS感光元件、AD轉(zhuǎn)換器,因此只要頻率在合適的范圍,ov6620會以較低的頻率運行,以較低的速率輸出圖像信息。

3.4 圖像采集結(jié)果的輸出顯示

為了能清楚比對成像質(zhì)量的差異,使用了Visual Studio 2010開發(fā)環(huán)境設(shè)計了一個高端測試軟件以顯示圖像信息。該軟件主要實現(xiàn)兩大功能:將從PC串口接收到的圖像數(shù)組進行濾波操作;把數(shù)組封裝成bmp格式的圖片,調(diào)用C#中Picture Box控件顯示采集的圖像。

為了使用PC機的串口接收圖像數(shù)據(jù),調(diào)用了C#中的SCIPort控件:當(dāng)PC機的串口有接到數(shù)據(jù)時,會觸發(fā)FrmSCI_Load函數(shù),該函數(shù)的主要功能是完成圖像幀的解析,即丟棄幀頭#23跟幀尾#24,解析出圖像數(shù)組。解析完成后,把串口接收到的圖像數(shù)組存儲至內(nèi)存中某一緩沖區(qū)內(nèi)。

在把圖像數(shù)組封裝成BMP格式之前,需先進行一次中值濾波。中值濾波在消除噪聲的同時還能保持圖像細(xì)節(jié),有較好的還原度。程序中使用了一個3*3的窗口W,即每次選取窗口中的9個像素點的灰度值由大到小排序后,選取第5個灰度值作為中值,替代掉窗口中央的那個灰度值。設(shè)增強圖像在 (x,y)的灰度值為f(x,y),增強圖像在對應(yīng)位置 (x,y)的灰度值為g(x,y),則有

g(x,y)=median{f(x-k,y-l),k,l∈W}

其中,W為一個3*3大小的窗口。使用這樣一個窗口對圖像數(shù)組中各元素依次進行中值運算會起到平滑圖像的效果。

為了將數(shù)組封裝成bmp格式的圖片,需開辟一個bitmap的類,定義圖片為8位灰度值圖片并鎖存bmp數(shù)據(jù)區(qū)至內(nèi)存中。因為采集到的圖像大小恒定,為356*292,因此新建的bitmap類中的bmpdata的大小也被鎖定為356*292。

一場圖像接收完成后,將存儲圖像信息的字節(jié)數(shù)組,按次序填充至bmpdata段中,并解鎖相應(yīng)的內(nèi)存區(qū)域。填充的過程使用了Marshal的Copy方法,具體代碼如下:

System.Runtime.InteropServices.Marshal.Copy(pixelValues,0,iptr,scanBytes);

bmp.UnlockBits(bmpData); //解鎖內(nèi)存區(qū)域

bmp格式的圖像封裝完成后,即可交由PictureBox控件輸出顯示。當(dāng)想獲取當(dāng)前采集結(jié)果時,測試軟件會發(fā)送一個特定格式的命令幀至圖像采集系統(tǒng)。KL25識別出命令幀后,會按照幀格式返回當(dāng)前圖像緩沖區(qū)中的圖像數(shù)組給上位機。測試軟件流程如圖5所示。

圖5 測試軟件流程

4 實驗結(jié)果分析

本文藉由實驗,比較了該圖像采集系統(tǒng)在不同時鐘信號下成像質(zhì)量的差異。分別在攝像頭與單片機各自使用單獨時鐘、單片機給攝像頭輸入12M時鐘、單片機給攝像頭輸入6M時鐘等情況下,測試圖像采集的結(jié)果。為了方便比較,圖片均是截取自結(jié)果圖像中同一細(xì)節(jié)。

經(jīng)比較發(fā)現(xiàn),未使用同步時鐘采集的圖像如圖6存在零星噪點,采用同步時鐘后所采集到圖像如圖6、圖7基本無噪點。比較圖7與圖8,可以看到隨著輸入時鐘頻率的降低,由于ov6620的工作速度減緩,KL25采集到的有效點增多,采集到的圖像越來越完整。圖8中明顯比圖7中多了很多細(xì)節(jié)。

圖6 不使用同步時鐘17.3M額定時鐘下采集到的圖像

圖7 同步時鐘下輸入12M時鐘信號采集到的圖像

圖8 同步時鐘下輸入6M時鐘信號采集到的圖像

但ov6620的運行頻率并不是越低越好,測試發(fā)現(xiàn)外部輸入的時鐘頻率存在有效范圍。當(dāng)頻率過低時,攝像頭無法正常工作,實驗發(fā)現(xiàn)圖像會出現(xiàn)拉伸變形的現(xiàn)象。因為ov6620內(nèi)部的CMOS感光元件采用電容來保存單個像素點的光照度的模擬量,而電容中的電信號會隨著時間慢慢衰減。如果兩場圖像的間隔周期太長,電容中臨時存儲的照度量會有較大衰減,因此不能保證采集結(jié)果的準(zhǔn)確性。當(dāng)攝像頭給ov6620輸入的時鐘頻率過低時,ov6629不能保證正常工作,因此輸入頻率有一個合適的范圍。

實驗結(jié)果表明在6M時鐘下,能獲得較為完整的圖像。當(dāng)頻率低于3M時,采集結(jié)果會有嚴(yán)重失真。因此,對于不同的圖像的采集系統(tǒng)需反復(fù)實驗得出最佳運行頻率。

5 結(jié)束語

傳統(tǒng)的由微控制器構(gòu)成的圖像采集系統(tǒng),微控制器數(shù)據(jù)處理的負(fù)荷過大,而利用微控制器給數(shù)字?jǐn)z像頭輸入低頻時鐘以降低攝像運行速度的方法可以有效減輕微控制器的負(fù)擔(dān),彌補微控制器主頻較低的不足。降頻后,類似KL25低端的微控制器也能勝任圖像采集的工作,因此可搭建出一個低成本的圖像采集系統(tǒng)。但是,實驗發(fā)現(xiàn)給攝像頭輸入的時鐘頻率是有范圍的。實驗中采用的ov6620的額定頻率是17.3M,測試發(fā)現(xiàn)外部輸入的時鐘在3M~29M的范圍內(nèi),攝像頭才能穩(wěn)定工作。經(jīng)反復(fù)實驗,在6M的外部時鐘頻率下,能獲得較好地采集效果。

KL25雖然運算能力較弱,但片內(nèi)提供較豐富的功能模塊,如DMA模塊、比較器等等。如果能用好此類片上資源,如使用比較器來判斷行列數(shù)值是否越界,就能進一步減少內(nèi)核的運算量。而且,下位機程序使用C語言編寫,不夠精簡,可以用匯編編寫中斷服務(wù)例程,使運行更高效,增加采集效率。

[1]KL25 Referencemanual_rev[3][DB/OL].[2013-03-13].http://www.freescale.com.

[2]OV6620/OV6120 Advanced information preliminary[DB/OL].[2013-06-27].http://www.ovt.com,2010.

[3]Kinetis L peripheral module_rev[0][DB/OL].[2013-03-27].http://www.freescale.com.

[4]WANG Yihuai,WU Jin,JIANG Yinzhen.Principle and practice of embedded system[M].Beijing:Publishing House of Electronics Industry,2012:392-395(in Chinese).[王宜懷,吳瑾,蔣銀珍.嵌入式系統(tǒng)原理與實踐[M].北京:電子工業(yè)大學(xué)出版社,2012:392-395.]

[5]GONG Shengrong,LIU Chunping,WANG Qiang.Process and analyze of digital image[M].Being:Tsinghua University Press,2009:63-64(in Chinese).[龔聲蓉,劉純平,王強.數(shù)字圖像處理與分析[M].北京:清華大學(xué)出版社,2009:63-64.]

[6]KL25 Sub-family data sheet_rev[3][DB/OL].[2013-04-10].http://www.freescale.com.

[7]M0+ technical reference manual[DB/OL].[2013-02-16].http://www.arm.com.

[8]M0+ user guide[DB/OL].[2013-04-15].http://www.arm.com.

[9]ARMv6-M architecture reference manual[DB/OL].[2013-04-18].http://www.arm.com.

[10]ZHANG Lu,SONG Qiuhong.Development and optimization on image acquisition system in small automatic line-tracking vehicle[J].Computer Engineering and Design,2010,31(17):3754-3756(in Chinese).[張璐,宋秋紅.自動巡線小車的圖像采集系統(tǒng)開發(fā)與優(yōu)化 [J].計算機工程與設(shè)計,2010,31(17):3754-3756.]

猜你喜歡
微控制器中斷時鐘
別樣的“時鐘”
古代的時鐘
物聯(lián)網(wǎng)技術(shù)在微控制器實驗教學(xué)中的應(yīng)用
電子制作(2017年14期)2017-12-18 07:07:58
跟蹤導(dǎo)練(二)(5)
千里移防,衛(wèi)勤保障不中斷
解放軍健康(2017年5期)2017-08-01 06:27:44
有趣的時鐘
時鐘會開“花”
Atmel針對新一代物聯(lián)網(wǎng)應(yīng)用發(fā)布全新32位微控制器
最新STM32設(shè)計工具增加對混合信號微控制器的支持
意法半導(dǎo)體(ST)推出世界首款基于ARM Cortex-M7的STM32 F7系列微控制器
达孜县| 湖南省| 礼泉县| 合作市| 安塞县| 滕州市| 晋州市| 扎囊县| 丰城市| 隆化县| 玉门市| 定安县| 紫云| 内乡县| 黄平县| 玉龙| 南宫市| 普格县| 临夏市| 城步| 行唐县| 共和县| 德江县| 赫章县| 怀化市| 菏泽市| 清河县| 南和县| 汝州市| 大同市| 九寨沟县| 孝昌县| 江源县| 江川县| 迁安市| 长兴县| 正宁县| 屏边| 绿春县| 洛浦县| 郴州市|