陳梅蕊,杜 瑩,毛紅敏,彭建濤,孫會娟,徐國定,陸煥鈞,曹召良
(1.蘇州科技大學物理科學與技術學院江蘇省微納熱流技術與能源應用重點實驗室,江蘇 蘇州 215009;2.中國航天科技集團公司 上海衛星工程研究所,上海 201109;3.北京聯合大學 數理部,北京 100101)
液晶光學器件,如空間光調制器、光延遲器、光衰減器、光隔離器、光開關等[1-8]被廣泛應用于各種光學儀器和設備中。液晶光學器件的驅動方式主要分為有源驅動和無源驅動兩大類。有源驅動是通過器件每個像素攜帶的電荷存儲電容進行供電,每個像素都配備薄膜晶體管,制作工藝復雜,且成本較高[9-10]。無源驅動通過外接驅動電路的方式對器件供電,制作工藝簡單且成本低[11-12]。無源驅動適合于低像素數的液晶調光器件和多個單像素器件的并行控制。隨著光的智能控制發展,在復雜的光學系統中,通常包含多像素或多個單像素液晶光學器件。比如,被廣泛研究的全電控制的激光雷達,其采用液晶空間光調制器和液晶偏振光柵組實現激光光束大角度連續掃描[13-19]。其中,液晶偏振光柵組是由多片液晶偏振光柵和液晶半波片組成,需要多路驅動電路進行控制。此外,低像素數的液晶空間光調制器也可采用無源驅動,從而降低成本[11]。若每個液晶器件均配置獨立的電路進行驅動,其成本及系統的復雜程度均相應增加。因此,需采用多通道信號對多像素或多個單像素器件進行同步控制。
多路同步驅動通常采用數模轉換器(DAC)將數字信號轉換為模擬信號,從而實現數字系統對模擬系統的控制[20-21]。目前常用的多路DAC系統普遍采用現場可編程門陣列(FPGA)系統進行控制。FPGA系統控制的DA輸出有兩種:一種是集成FPGA芯片的板卡直接插在電腦的主板上,然后利用信號傳輸接口傳出模擬信號,但該方法輸出的模擬信號路數受限,目前最多輸出32路[22];另一種是在電腦主板上插一塊數字信號發送卡,先把數字信號通過PCI或PCI-E接口高速傳輸到集成FPGA芯片的數模轉換器,然后再進行多路數模轉換和多路模擬信號的輸出,該方式可以實現更多模擬信號的輸出[23-24]。但基于FPGA實現多路輸出的成本及開發難度比較高,并且使用不便。
為此,本文提出一種低復雜度、低成本的多路液晶光學器件驅動電路設計方法。其采用STM32作為主控,降低設計難度和成本;采用通用串行總線(USB)接口的通信方式,降低使用復雜度。同時,采用可插拔多子板加母板的設計思想,依據實際需求靈活選取子板數目,從而進一步降低成本和系統復雜度。
無源液晶光學器件的驅動電壓通常在10 V以內,驅動頻率為千赫茲量級,電壓調制精度為8~10 bit。為滿足通常液晶器件及雙頻液晶高低頻切換的驅動要求,本文的設計目標為:電壓±10 V,頻率2~10 kHz可調,電壓調制精度10 bit。此外,為了滿足普通應用需求,本文設計了192路的并行輸出控制信號。
總體驅動方案設計如圖1所示,主要分為上位機、驅動板卡及輸出板3部分。為降低驅動電路的復雜度,上位機通過USB接口進行數據傳輸和驅動板卡的控制。驅動板卡采用母板與多子板組合模式,子板和母板間采用串行外設接口(SPI)進行數據傳輸。每個子板控制32路信號輸出,并且以可插拔方式與母板連接,從而實現子板個數自由選擇,降低驅動電路成本及簡化產品。每個子板通過2個SPI接口將數據分發給各自的2個DAC芯片進行數模轉換,從而實現幅值可調及10 bit的電壓調制精度。輸出板與驅動板卡通過BTB連接器進行連接,便于對液晶器件進行控制。

圖1 總體驅動方案設計Fig.1 Design of overall drive scheme
多路模擬信號的時序流程圖如圖2所示。在系統開始運行時,PC首先將驅動數據通過USB發送給母板,母板將數據分成對應的組之后再發送給相應的子板,子板接收到數據之后將數據寫入到DAC芯片的寄存器中,DAC芯片等待刷新命令,在全部命令都發送完畢之后,母板主控芯片向每個子板按順序發出刷新命令,子板主控芯片在接收到刷新命令之后立即向DAC芯片發出刷新命令,之后DAC芯片將存儲在寄存器當中的數據按照既定順序刷新到每個管腳,輸出對應的電壓。

圖2 多路模擬信號時序流程圖Fig.2 Flow chart of multiplex analog signal timing
本文采用USB3300作為USB接口通信芯片,實現PC機與驅動板卡的數據交互,其具體連接示意圖如圖3所示。以USB2.0的方式進行通信協議,滿速率高達480 Mbit/s。經計算,理論上傳 輸192個10 bit數據的延遲為3.8 μs,該 時間可忽略不計,因而滿足應用需求。此外,它包含一套集成的內置電源管理功能,即內部調節器使芯片可以由單個3.3 V電源供電,減少成本并簡化產品設計;同時,其即插即用,使用方便,連接靈活。USB3300使用一個24 MHz內部晶體驅動器和鎖相環子系統來提供480 MHz的參考時鐘,一旦鎖相環鎖定到正確頻率,它將使用60 MHz時鐘驅動CLK引腳,使物理層可以正常收發數據。該芯片具有8位數據總線,總線所有權由DIR位決定,鏈路和物理層通過在總線上驅動非零模式來啟動數據傳輸,NXT用于控制進出設備的數據流,最后輸入到STP終止傳輸。

圖3 USB芯片連接示意圖Fig.3 Schematic diagram of the USB chip connection
為了實現驅動電路的低成本、低復雜度設計,采用STM32F429ZET6作為母板控制芯片,STM32F411CEU6作為子板控制芯片。母板與子板之間通過SPI接口進行數據傳輸,并以主從方式進行工作,如圖4所示。其中母板作為主機,子板為從機,共有4根連接線,分別為MOSI(主機輸出,從機輸入)、MISO(主機輸入,從機輸出)、SCLK(串行時鐘信號,由主機產生發送給從機)和NSS(片選信號,由主機發送,以控制與從機通信)。SPI在全雙工模式下,具有單獨的發送和接收路線,因此,可以在同一時間發送和接收數據。SPI的接收硬件可以是一個簡單的移位寄存器,相比于異步串行通信所需的完整UART,該方案簡單且成本低。母板控制芯片包括6個SPI接口,子板控制芯片包括3個SPI接口,接口速率統一采用22.5 Mbit/s,母板的6個SPI接口與分別6個子板的1個SPI接口相連,每個子板的其余兩個SPI接口分別與2個DA轉換芯片相連,以此控制多路數據傳輸。

圖4 主從器件SPI接口連接示意圖Fig.4 Schematic diagram of primary and slave device SPI interface connection
子板以可插拔的方式與母板進行連接,實現子板個數自由選擇,從而降低驅動電路的復雜度及成本。母板與子板的設計包括晶振電路、電源電路、下載電路及復位電路,具體如圖5所示。晶振的頻率為16 MHz,并將其作為鎖相環電路的時鐘源,對16 MHz的頻率進行倍頻,提升系統所需要的時鐘頻率,使系統更加快速穩定運行。XI與XO引腳串聯兩個電容用來削弱諧波對電路的穩定性的影響。本設計中在母板處外接一個電源,向母板提供±15 V及5 V的電源,經穩壓電路和LT76ES芯片轉換為12 V及3.3 V,向各芯片提供所需電壓,使設備正常工作。電源電路的電容用來穩定電壓輸出及消除電壓的高頻成分,確保輸出電壓純凈。下載電路采用SWD接口,其比傳統JTAG調試更適用于高速模式,并且所需要的引腳少,節省PCB空間。母板與子板均含兩個DMA控制器,總共有16個數據流,每個數據流有多達8個通道。DMA用于存儲器與外設之間提供高速數據傳輸,可以在無需任何中央處理器(CPU)操作的情況下通過DMA快速移動數據,這樣CPU節省的資源可供其他操作使用。

圖5 主控芯片及附加電路示意圖Fig.5 Schematic diagram of the main control chip and the additional circuit
本設計采用16通道、±10 V,能實現電壓范圍內雙極性信號擺幅,電壓調制精度可達10 bit的數模轉換器LTC2668進行數字信號到模擬信號的轉換,經多路復用器MUX控制VOUT[0-15]輸出16路模擬電壓,其具體原理圖如圖6所示。每個DAC通道有兩組雙緩沖寄存器,一組用于代碼數據,一組用于DAC的輸出范圍,雙緩沖提供了同時更新量程和代碼的能力,從而允許在改變輸出范圍時進行平滑的電壓轉換。為保證電壓的穩定性和低噪聲,REF等引腳外接0.1 μF的電容。LTC2668采用可級聯的3線式SPI/Microwire兼容接口進行控制,最高時鐘速率可達50 MHz。

圖6 DAC原理圖Fig.6 Schematic diagram of DAC
多路DA系統的實現不僅依賴于硬件設計,還與控制軟件的設計密切相關。在控制軟件設計方面,母板軟件設計主要起到將PC與子板進行鏈接的作用。由于傳輸的數據量較大,本文使用DMA控制器,無需CPU直接進行數據傳輸,控制簡單,節約系統資源,適用于數據傳輸率很高的設備進行成組傳送。具體過程如圖7所示,USB接收到數據后按照順序使能各SPI接口的DMA請求,將數據輸出到每一個子板,最后再向子板發送刷新輸出的命令。

圖7 STM32F429控制軟件流程圖Fig.7 Flow chart of the STM32F429 control software
子板控制軟件設計的具體實現過程如圖8所示。首先判斷母板發送的信息是數據還是刷新命令。如果是數據,就將數據通過SPI寫入到DAC芯片當中;如果接收到的信息是刷新命令,就通過SPI將DAC芯片的刷新命令寫入,將模擬數據刷新到相應的引腳。

圖8 STM32F411控制軟件流程圖Fig.8 Flow chart of STM32F411 control software
上位機的軟件界面程序用Qt開發,利用USB3300動態鏈接庫提供的函數,編程實現PC與下位機通信,界面如圖9所示。圖9中192個六邊形即對應192路。界面具體操作過程如下:首先選擇文件,文件為Excel表,Excel表里的第一個數字對應的是第一路DA,輸入的范圍為0~1 023的電壓灰度級。由于USB接口只能進行8位數據傳輸,而發送一個電壓灰度值為10 bit,因此在嵌入式與上位機中均對數據進行了分配,每4個數據用5個字節,即前4個字節存儲4個數據的高8位,第5個字節按順序存儲4個數據的低2位,以此對數據進行傳輸。其次,在周期設置框中輸入方波翻轉周期,范圍為50~255 μs。最后,點擊確定及開始發送,即可得到多路幅頻可調的方波。

圖9 上位機應用軟件界面Fig.9 Upper-computer application software interface
基于上述設計,進行制板和控制軟件編寫,研制出的液晶器件驅動控制電路如圖10所示。硬件部分主要包括母板、子板、外接電源以及輸出板。母板與子板根據軟件設計流程實現192路信號輸出。輸出板設計了32路,以便于對每個子板控制的32路進行測試。測試時,上位機通過母板的USB接口進行數據傳輸,通過上位機實現幅值與頻率可調。

圖10 硬件設計實物圖Fig.10 Physical design of hardware design
通過上位機給下位機同時發送不同的電壓灰度值與周期對驅動電路進行測試。灰度值從0~1 023設置了8個值,用示波器對外接板FA0路分別進行測試,結果如圖11(a)所示。其中“·”表示實測電壓,其范圍在0~10 V。從圖11可以看出,電壓與灰度值符合線性關系,擬合得到的直線斜率為0.010,與理論10 V、1 024級電壓灰度線性關系相對應。由于測試環境的影響,如示波器測量及線路誤差,實際測量過程中存在0.003 V的靜態誤差。實測電壓值與擬合直線的誤差結果如圖11(b)所示,誤差在0.010 V左右,在去除0.003 V靜態誤差的情況下,大多數誤差接近于0。

圖11 測試結果Fig.11 Test results
本文針對無源液晶調光器件的驅動控制要求,設計了一種低成本、低復雜度的多路DA同步控制方法。以STM32作為主控芯片,USB與電腦通信的方式進行數據傳輸,降低系統復雜度,并通過上位機實現幅頻可調。子板以可插拔形式與母板進行連接,實現子板個數自由選擇,從而降低系統成本。然后,用DAC芯片進行數模轉換,實現192路模擬信號的輸出。測試結果顯示,不同電壓灰度值與模擬電壓符合線性比例關系,并且其誤差在0.010 V左右,符合10 bit、1 024級電壓灰度值調制精度,說明該驅動電路輸出信號的精度及穩定性高,滿足無源液晶器件的驅動控制要求。該研究結果為多路無源液晶光學器件的驅動控制提供了強有力的技術支撐,從而擴展了其應用場景,加快其產品化進程。