雖然開始研究的時候比較疑惑,其實還是比較簡單的。十幾分鐘就可以全部掌握。
編碼器的廠商為了抗干擾,在ssi訊號使用了rs422,rs422和rs485這類的都是通訊協議而已,打個比方,只是你去往同一城市的不同道路而已,最終還是你過去,你並沒有變化。
編碼器的ssi協議其實非常的簡單,他是同步訊號,類似spi。
ssi為同步串聯訊號,實際的兩對rs422(rs422四根線),一對時鐘觸發,一對資料傳送。
如圖所示,編碼器的絕對位置值由接收裝置的時鐘訊號觸發、從格雷碼高位(msb)開始,輸出與時鐘訊號同步的序列訊號。時鐘訊號從接收裝置發出,以編碼器的總位數輸出n個中斷脈衝,當不傳送訊號時,時鐘和資料位均是高位,在時鐘訊號的第乙個下降沿,當前值開始貯存,從時鐘訊號上公升沿開始,資料訊號開始傳送,乙個時鐘脈衝同步一位資料。
t = 4~11us
tcal : 1us~5.5us
n = 資料字長,24位,25位26位和32位
推薦讀取資料的最佳位置不是時鐘的下降沿,而是應該是下降沿與下乙個上公升沿的中間位置。
這也是為什麼spi不適用的原因,資料可能會出錯。
ssi協議只需要兩根線,乙個是時鐘,乙個是資料 所以 引腳配置
乙個引腳為輸出模式,上拉
乙個引腳為輸入模式,上拉
舉例子,t = 125khz, tcal = 4us
偽**:
時鐘引腳高電平持續幾ms //保證時鐘為高電平,並且錯過t2
時鐘引腳低電平4us
時鐘引腳高電平4us
/* 保證時鐘為高電平,並且錯過t2 */
時鐘引腳高電平持續幾ms
/* 第乙個時鐘資料不需要 */
時鐘引腳低電平4us
時鐘引腳高電平4us
/* 讀資料 按照需要反覆此步驟 直到讀取完資料 */
時鐘引腳低電平2us
讀取資料
時鐘引腳低電平2us
時鐘引腳高電平4us
重點是us的實現,對此具體見我的其他文章。先讀的資料是最高位,並且讀完的資料是格雷碼,轉換一下就可以得到資料。 增量式編碼器和絕對式編碼器
根據其刻度方法及訊號輸出形式,可分為增量式 絕對式以及混合式三種。1 增量式編碼器 增量式編碼器是直接利用光電轉換原理輸出三組方波脈衝a b和z相 a b兩組脈衝相位差90。從而可方便的判斷出旋轉方向,而z相為每轉乙個脈衝,用於基準點定位。它的優點是原理構造簡單,機械平均壽命可在幾萬小時以上,抗干擾...
stm32 SSI讀編碼器
uint32 t read as5311chip void as5311 clk h delay us 10 return raw value void as5311 analyzessicode void 獲取0 4096 else else seg32data.all seg32data.all...
光電式絕對編碼器
絕對編碼器 光電式絕對編碼器的碼盤如圖12.3.1所示,它是在一塊圓形玻璃上採用腐蝕工藝刻有透光和不透光的碼形,其中黑的區域為不透光區,用 0 表示 白的區域為透光區,用 1 表示,如此,在任意角度都有對應的二進位制編碼。碼盤分成四個碼道,每一條碼道對應乙個光電器件,並沿碼盤的徑向排列。當碼盤處於不...