時間:2020-10-16 11:19:58來源:探頭的蝸牛 控制算法研究
一、SSI通信協議簡介
SSI(synchronous serial interface)同步串行接口。SSI通訊的幀格式如下圖所示。數據傳輸采用同步方式,在空閑階段不發生數據傳輸的時候時鐘和數據都保存高電位,在第一個脈沖的下降沿觸發編碼器載入發送數據,然后每一個時鐘脈沖的上升沿編碼器送出數據,數據的高位在前、低位在后,當傳送完所有的位數以后時鐘回到高電平,數據也回到對應的高電平。
二、增量式編碼器和絕對式編碼器
增量式編碼器是將角度轉化為周期性的電信號,再將這個電信號轉化為脈沖,用脈沖的個數表示位移的大小;絕對式編碼器內部的碼盤的每一個位置對應一個確定的數字碼,因此他的測量值只與起始和終止位置有關,與測量過程無關。絕對值編碼器因其每個位置絕對唯一、抗干擾、無需掉電記憶,已經廣泛應用于各種工業控制系統中,實現角度、長度的高精度測量和控制。
三、單圈絕對式編碼器工作原理
的單圈絕對值編碼器內部有個碼盤,碼盤上有若干個碼道,碼道上有通孔和暗孔(不透光),對光電類的編碼器,碼盤位于光源與光接收器之間,當某個碼道處于光源處(或者稱為測量接口電路處),光電接收器接收到通過通孔的光信號置1,沒有接收到光信號(暗孔)置0,這樣一個固定的角度位置就可以被編碼,十進制角度被編碼成n位二進制;如圖所示4位二進制,位數越高,碼道數越多,編碼器的測量分辨率也就越大,比如12位的編碼器,分辨率為360/2^12=360/4096=0.0878。編制而成的二進制數據在接收到觸發信號(SSI模式時一個上升沿),數據被移入到移位寄存器中,接下來,在接收器同步時鐘模式下,每一個上升沿發送一位數據到數據線,控制器對其進行讀取。
四、實例代碼
本測試實例通過讀取旋轉角度,并將角度信息發送到串口助手中
(https://item.taobao.com/item.htm? spm=a230r.1.14.68.1ee0c2dfGeO7eU&id=591334271759&ns=1&abbucket=19#detail)
1、接線:
編碼器采用5v供電,TTL電平輸出,通過三根線與單片機(stm32f10)傳輸數據。
2、代碼:
(CSN-PA5;CLK-PA6;DO-PA7)
CLK-模擬同步時鐘,第一個下降沿開始傳輸數據,之后每一個上升沿輸出數據;CSN-控制信號,數據傳輸時低電平,結束高電平;
DO-數據輸出端口
端口配置:
void Gpio_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端口時鐘
//GPIO_DeInit(GPIOA);
//PA5-CSN -高速推挽輸出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度為50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //
//PA6-CKL
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //
GPIO_Init(GPIOA, &GPIO_InitStructure); //推挽輸出 ,IO口速度為50MHz
//PA7-DO
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
12位每次輸出一個二進制位,將其讀出并存儲;開始讀取數據時CSN需要一個高到低的電平跳變,然后循環讀取中是CLK低到高的跳變,最后結束CLK和CSN都為高電平。
上一篇:數控車床編碼器的精度與分辨...
下一篇:海德漢旋轉編碼器安裝及拆卸
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-04-30
2025-04-11
2025-04-08
2025-03-31
2025-03-26
2025-03-20