串行收發控制電路及方法
【技術領域】
[0001]本發明實施例涉及電子電路技術領域,尤其涉及一種串行收發控制電路及其控制方法。
【背景技術】
[0002]串行外圍設備接口(Serialperipheral interface, SPI)是首先由 Motorola 公司在其MC68HCXX系列處理器上定義的。SPI是一種高速全雙高,同步串行的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的管腳,同時為PCB在布局上節省空間,提供方便,正是出于這種簡單易用的特性,現在越來越多的芯片集成了這種通信協議。SPI接口主要應用在EEPR0M、外圍設置FLASHRAM、網絡控制器、LCD顯示驅動器、A/D轉換器、MCU和數字信號解碼器等等。
[0003]SPI總線系統的工作方式是主從方式。在主機模式下,利用SPI總線進行通信的設備被作為串行通信中的主機,控制著串行通信的過程。而在從機模式下,利用SPI總線進行通信的設備在串行通信中處于從機的地位,在主機的支配下進行通信。而且,主機模式和從機模式的不同還體現在SPI總線的時鐘信號的傳輸方式上。在主機模式下,進行通信的設備自身提供SPI總線上的時鐘信號;而在從機模式下,進行通信的設備不主動提供時鐘信號,而是接收總線上其他設備提供的時鐘信號。
[0004]現有的SPI接口電路針對主機模式和從機模式開發不同的電路模塊,并且分別使用不同的時鐘源。其結果是主機模式和從機模式各自具有自己獨立的電路模塊,增大了芯片中的邏輯單元和芯片占用的面積。并且,在不同模式下,時鐘信號的電器特性并不一致。
【發明內容】
[0005]針對上述技術問題,本發明提供了一種串行收發控制電路及其控制方法,以使在主機模式和從機模式下接口電路復用相同的時鐘信號,降低了芯片所占用的面積。
[0006]第一方面,本發明實施例提供了一種串行收發控制電路,所述電路包括:
[0007]時鐘產生模塊,用于根據配置信號產生主機時鐘信號,所述主機時鐘信號是在主機模式下,向從機輸出的時鐘信號;
[0008]焊盤模塊,其與時鐘輸入輸出接口連接,接收所述時鐘產生模塊產生的主機時鐘信號,以及輸出使能信號,用于在主機模式下通過所述時鐘輸入輸出接口向從機輸出所述主機時鐘信號,以及在從機模式下通過所述時鐘輸入輸出接口從主機接收外部時鐘信號;
[0009]雙路選擇模塊,分別接收所述主機時鐘信號及所述外部時鐘信號,用于根據所述輸出使能信號從所述主機時鐘信號及所述外部時鐘信號中選擇一路信號,作為串行外圍接口 SPI的復用時鐘信號;
[0010]收發控制模塊,接收所述復用時鐘信號,用于根據所述配置信號控制數據的接收或者發送;
[0011]收發寄存模塊,接收所述復用時鐘信號,并與數據輸入接口及數據輸出接口連接,用于在所述收發控制模塊的控制下寄存通過所述數據輸入接口接收到的或者需要通過所述數據輸出接口發送的數據。
[0012]進一步的,所述串行收發控制電路還包括:
[0013]配置寄存模塊,分別與所述時鐘產生模塊、所述焊盤模塊以及所述雙路選擇模塊相連接,用于寄存所述配置信號及所述輸出使能信號。
[0014]進一步的,所述配置信號包括:所述主機時鐘信號的頻率指示信號、極性指示信號以及相位指示信號。
[0015]進一步的,所述串行收發控制電路還包括:
[0016]時鐘翻轉模塊,用于根據所述極性指示信號及所述相位指示信號,對所述復用時鐘信號進行翻轉。
[0017]進一步的,所述時鐘翻轉模塊具體用于:
[0018]根據所述極性指示信號及所述相位指示信號,判斷所述復用時鐘信號的有效采樣沿是否為下降沿;
[0019]若所述有效采樣沿是下降沿,則對所述復用時鐘信號進行極性翻轉。
[0020]進一步的,所述焊盤模塊包括:
[0021]輸出驅動單元,用于在主機模式下從所述時鐘輸入輸出接口輸出所述主機時鐘信號;
[0022]輸出使能開關,用于使能對主機時鐘信號的輸出;
[0023]施密特觸發器,用于將輸入的外部時鐘信號轉換為高低電平信號。
[0024]進一步的,所述時鐘產生模塊通過對內部時鐘信號的分頻而產生所述主機時鐘信號。
[0025]進一步的,在主機模式下,所述輸出使能信號為高電平;
[0026]在從機模式下,所述輸出使能信號為低電平。
[0027]第二方面,本發明實施例還提供了一種串行收發控制方法,用于控制根據如上第一方面所述的串行收發控制電路,所述方法包括:
[0028]根據主機時鐘信號的特性設置配置信號;
[0029]根據需要的通信模式設置輸出使能信號,其中所述通信模式包括主機模式或者從機模式;
[0030]根據所述配置信號及所述輸出使能信號的設置,由不同的時鐘信號源獲取時鐘信號;
[0031]根據獲取的時鐘信號執行串行數據收發。
[0032]進一步的,根據主機時鐘信號的特性設置配置信號包括:
[0033]根據主機時鐘信號的特性,將所述配置信號寄存于預置的配置寄存模塊中,其中,所述主機時鐘信號的特性包括:頻率特性、極性特性及相位特性,所述配置信號包括:頻率指示信號、極性指示信號以及相位指示信號。
[0034]進一步的,根據需要的通信模式設置輸出使能信號包括:
[0035]若所述通信模式為主機模式,在預置的配置寄存模塊中設置所述輸出使能信號為高電平;
[0036]若所述通信模式為從機模式,在預置的配置寄存模塊中設置所述輸出使能信號為低電平。
[0037]進一步的,根據所述配置信號的所述輸出使能信號的設置,獲取時鐘信號包括:
[0038]若所述輸出使能信號為高電平,根據所述配置信號對內部時鐘信號進行分頻,獲取主機時鐘信號,并將所述主機時鐘信號作為所述時鐘信號;
[0039]若所述輸出使能信號為低電平,將由時鐘輸入輸出接口接收到的外部時鐘信號作為所述時鐘信號。
[0040]本發明實施例提供的串行收發控制電路及方法,采用雙路選擇模塊從自身產生的主機時鐘信號及外部時鐘信號中選擇一路信號作為復用時鐘信號,并利用該復用時鐘信號作為數據收發的控制時鐘,從而使各個電路功能模塊最大限度的復用,降低了芯片為實現串行數據收發功能而占用的面積。
【附圖說明】
[0041]圖1是本發明第一實施例提供的串行收發控制電路的電路結構圖;
[0042]圖2是本發明第一實施例提供的串行收發控制電路中焊盤模塊的電路結構圖;
[0043]圖3是本發明第二實施例提供的串行收發控制方法的流程圖。
【具體實施方式】
[0044]下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部結構。
[0045]第一實施例
[0046]本實施例提供了串行收發控制電路的一種技術方案。所述串行收發電路根據SPI接口標準,控制通過SPI接口的接收及發送數據流。
[0047]參見圖1,所述串行收發控制電路包括:時鐘產生模塊11、焊盤模塊12、雙路選擇模塊13、時鐘翻轉模塊14、收發控制模塊15、收發寄存模塊16以及配置寄存模塊17。
[0048]所述時鐘產生模塊n用于根據配置信號產生主機時鐘信號,所述主機時鐘信號是在主機模式下,向從機輸出的時鐘信號。具體的,所述時鐘產生模塊11所述配置信號中保存的,用于指示所述主機時鐘信號的特性的各個分量信號,對內部時鐘信號進行分頻,從而得到所述主機時鐘信號。進一步的,所述配置信號包括:所述主機時鐘信號的頻率指示信號、極性指示信號以及相位指示信號。所述內部時鐘信號可以是從例如內部晶振等內部時鐘源上獲取到的時鐘信號。
[0049]所述焊盤模塊12其與時鐘輸入輸出接口連接,接收所述時鐘產生模塊產生的主機時鐘信號,以及輸出使能信號,用于在主機模式下通過所述時鐘輸入輸出接口向從機輸出所述主機時鐘信號,以及在從機模式下通過所述時鐘輸入輸出接口從主機接收外部時鐘信號。
[0050]參見圖2,具體的,所述焊盤模塊12包括:輸出驅動單元21、輸出使能開關22以及施密特觸發器23。所述輸出驅動單元21用于當所述輸出使能信號為高電平時從所述時鐘輸入輸出接口輸出所述主機時鐘信號。所述輸出使能開關22用于根據所述輸出使能信號使能對主機時鐘信號的輸出。優選的,當所述輸出使能信號為高電平時,使能對所述主機時鐘信號的輸出,而當所述輸出使能信號為低電平時,不使能對主機時鐘信號的輸出。所述施密特觸發器23用于將輸入的外部時鐘信號轉換為適合輸入至所述串行收發控制電路的高低電平信號。
[0051]所述雙路選擇模塊13分別接收所述主機時鐘信號及所述外部時鐘信號,用于根據所述輸出使能信號從所述主機時鐘信號及所述外部時鐘信號中選擇一路信號,作為串行外圍接口的復用時鐘信號。
[0052]優選的,當所述輸出使能信號是高電平時,選擇所述主機時鐘信號作為所述復用時鐘信號,而當所述輸出使能信號是低電平時,選擇所述外部時鐘信號作為所述復用時鐘信號。
[0053]所述時鐘翻轉模塊14分別與所述時鐘產生模塊、所述焊盤模塊以及所述雙路選擇模塊相連接,用于根據所述極性指示信號及所述相位指示信號,對所述復用時鐘信號進行翻轉。
[0054]所述時鐘翻轉模塊14根據所述配置信號中的極性指示信號及相位指示信號識別所述復用時鐘信號的有效采樣沿,并且當所述有效采樣沿是上升沿時對所述復用時鐘信號進行極性翻轉。
[0055]所述收發控制模塊15接收所述復用時鐘信號,用于根據所述配置信號控制數據的接收或者發送。
[0056]優選的,所述收發控制信號以接收到的復用時鐘信號為自身的時鐘信號,并向所述收發寄存模塊輸出通信控制信號。具體的,當所述串行收發控制電路處于主機模式時,所述通信控制信號控制所述收發寄存模塊16執行主機模式