首頁>Club>
5
回覆列表
  • 1 # 玩轉嵌入式

    時序對於數位電路而言非常重要,可以說時序是數位電路正常工作的基礎。說到時序,一般是指可程式設計器件的程式設計方法,在微控制器程式設計時,需要根據被控晶片的時序去寫程式,把晶片手冊上規定好的時序用程式碼來實現,放可以實現微控制器和晶片之間的通訊。下面以幾種常用晶片的時序來簡單介紹一下如何看懂時序。

    1IIC通訊的開始/結束時序

    IIC是常用的晶片間的通訊方式,也叫I2C,適合於PCB板內近距離的通訊,總共具有兩跟線,可掛接不同地址的多個裝置,其硬體連線如下圖所示。

    IIC在通訊時需要首先發送一個開始訊號,資料結束時需要傳送結束訊號,開始和結束就在器件手冊上就給出了時序圖,在程式設計時就需要用C語言程式碼去實現開始和結束的時序,時序圖如下所示。

    SCL是IIC的時鐘線,SDA是資料線,SDA資料如何傳輸需要在特定的SCL時序上。從圖中可以看出,在開始時,必須SCL是高電平,而SDA是下降沿,這就是開始的時序。在傳送結束訊號時,必須讓SCL為高電平,讓SDA是上升沿,這就構成了結束訊號。用C語言程式碼所實現的結束訊號如下所示。

    2IIC資料傳輸時的時序

    IIC在傳送完開始訊號後,就要開始傳送資料,傳送資料的過程也必須得遵守IIC的時序,IIC資料傳輸的時序如下圖所示。

    從時序圖上,可以看出,在SCL為高電平期間是不允許SDA資料發生變化的,如果要改變SDA資料必須發在SCL為低電平期間。這就是這個時序圖的含義。微控制器在程式設計時要遵循這個規則才可以。

    時序圖是程式設計的依據,在寫程式碼時必須要嚴格按照晶片手冊上的時序圖,否則通訊失敗。所以,時序圖這個東西要多看,多寫程式碼。

  • 2 # 小扇子的筆記

    微控制器時序,我的理解是依據時鐘訊號,遵循標準,傳輸資料的過程。那麼如果要弄清楚微控制器時序,首先需要先弄清楚微控制器的時鐘訊號,時鐘訊號驅動核心、外設工作。那麼時鐘訊號從哪裡來,又如何驅動核心,外設工作呢?先從晶振說起。

    晶振

    晶振,全稱是石英晶體振盪器,是一種高精度和高穩定度的振盪器,透過一定的外接電路來,可以生成頻率和峰值穩定的正弦波。

    該正弦波訊號透過微控制器內部的時鐘電路,可倍頻/分頻為需要的時鐘訊號頻率,如原始晶振8M,可以最終產生72M的時鐘給核心使用,到達核心與外設的時鐘。

    時鐘週期是微控制器中最基本的、最小的時間單位。在一個時鐘週期內,核心僅完成一個最基本的動作,一個時鐘週期從RoM中取一條指令,然後下一個時鐘週期執行,週而復始。

    時鐘差不多了,那麼時序基於時鐘訊號,外設以spi為例說明時序如何實現的。

    時序(SPI)

    SPI主要有一個時鐘CLOCK,兩個資料線MISO/MOSI,其中CLOCK由主動發起的外設產生,如裝置1的外設要讀裝置2的外設,那麼裝置1的外設產生時鐘,裝置2的外設只能由裝置1的外設時鐘操控。

    如上圖所示:

    裝置1外設產生時鐘1時,裝置1外設透過資料線MOSI線輸出1位,同時裝置2外設透過MISO資料線輸出1位;8個時鐘,就輸出8位資料,即1個位元組傳輸完成。

    裝置1外設透過MOSI輸出的資料,被裝置2外設的MISO接收,同理,裝置2外設透過MOSI輸出的資料,被裝置1外設的MISO接收,如下圖:

    同時裝置1與裝置2傳輸前約定傳輸規則:

    1、我們從時鐘上升沿輸出資料,從時鐘下降沿採集資料,即讀取資料;

    2、我們每個位元組資料都是先輸出最低為,然後再輸出最高位。

    以上就是SPI的時序。

    其它外設時序

    還有其它I2C時序、串列埠時序等等,都有自己的傳輸約定。

    以上,個人觀點。

  • 中秋節和大豐收的關聯?
  • 問一個天文學常識問題?