時間:2006-06-01 15:19:00來源:0
三、SM1000功能框圖
四、功能引腳介紹
五、應(yīng)用方向舉例
	步進(jìn)馬達(dá)控制器
	輕紡設(shè)備:縫紉機(jī)/繡花機(jī)等
	機(jī)器手/臂
	空間座標(biāo)測量/定位系統(tǒng)
	經(jīng)濟(jì)型通用運(yùn)動控制器
	鉆孔、銑邊設(shè)備
	其他
六、編程應(yīng)用介紹
A、CPU接口
該芯片采用通用8051 8位地址/數(shù)據(jù)復(fù)用接口。由于芯片內(nèi)內(nèi)置了地址鎖存器,因此,可以直接與8051單片機(jī)地址/數(shù)據(jù)總線相連,而不需要通過地址鎖存器分離出地址和數(shù)據(jù)總線。另外,該芯片內(nèi)置了一個3-8譯碼器,可以輸出7個片選信號,以共用戶擴(kuò)展地址譯碼用。這樣,極大地方便了用戶基于8051單片機(jī)的應(yīng)用系統(tǒng)設(shè)計。整個接口只需要14根線。包括:
	8根地址/數(shù)據(jù)總線:AD0~7
	3根片選線:CS1~3
	1根地址鎖存允許線:ALE
	1根讀允許線:RD_n
	1根寫允許線:WR_n
輸出7根片選線,地址劃分見《表二:地址分配表》。
B、地址分配
C、CPU讀/寫操作
讀寫脈沖計數(shù)器:
脈沖計數(shù)器的值可以用命令直接寫,但要讀出時,就必須先用鎖存脈沖計數(shù)器值命令,先鎖存起來,再用命令直接讀;如下所示。
寫脈沖計數(shù)器操作格式:
a、(*地址)=  數(shù)據(jù) ;
其中:地址=基地址+0+nn*16+mm;   nn=(0~3)為通道號,mm=(0~3)為字節(jié)地址;
            數(shù)據(jù)為8bit字節(jié)數(shù)據(jù)。
讀脈沖計數(shù)器操作格式:
a、(*鎖存地址)=  任意數(shù)據(jù);
b、變量=(*讀地址);
其中:鎖存地址=基地址+10+nn*16;   nn=(0~3)為通道號,10為鎖存脈沖計數(shù)器地址;
            鎖存命令的數(shù)據(jù)為8bit字節(jié)任意數(shù)據(jù),其值無意義。
            讀地址=基地址+0+mm;   mm=(0~3)為字節(jié)地址;
注意:脈沖計數(shù)器長度為32位,允許全范圍設(shè)置:0x00000000~0xFFFFFFFF。實(shí)際輸出脈沖個數(shù)由下面公式給出:
           脈沖個數(shù)=(脈沖計數(shù)器值+1)/2;
           當(dāng)脈沖計數(shù)器值為最大值0xFFFFFFFF時,允許最大脈沖個數(shù)為2147483648。
           當(dāng)脈沖計數(shù)器值為最小值0x00000001時,允許最小脈沖個數(shù)為1。
其中,脈沖計數(shù)器值應(yīng)該為奇數(shù),如為偶數(shù),則最后一個脈沖寬度很窄。輸出脈沖為對應(yīng)頻率的方波。
           
寫脈沖頻率數(shù)據(jù):
寫脈沖頻率數(shù)據(jù)操作格式:
a、(*地址)=  數(shù)據(jù) ;
其中:地址=基地址+4+nn*16+mm;   nn=(0~3)為通道號,mm=(0~3)為字節(jié)地址;
            數(shù)據(jù)為8bit字節(jié)數(shù)據(jù)。
32位情況:脈沖頻率值長度為32位,允許設(shè)置范圍為:0x00000001~0xFFFFFFFF。實(shí)際輸出脈沖頻率由下面公式給出:
當(dāng)脈沖頻率值<0x00800000 時:
                   脈沖頻率=(輸入時鐘頻率/2^28)*脈沖頻率值;
當(dāng)脈沖頻率值≥0x00800000 時:
                   脈沖頻率=(輸入時鐘頻率/(2^36+2^28)*脈沖頻率值。
24位情況:脈沖頻率值長度為24位,允許設(shè)置范圍為:0x000001~0xFFFFFF。實(shí)際輸出脈沖頻率由下面公式給出:
當(dāng)脈沖頻率值<0x00400000 時:
                   脈沖頻率=(輸入時鐘頻率/2^25)*脈沖頻率值;
當(dāng)脈沖頻率值≥0x00400000 時:
                   脈沖頻率=(輸入時鐘頻率/(2^33+2^25)*脈沖頻率值。
啟動脈沖通道工作:
啟動脈沖通道工作操作格式:
a、(*地址)=  數(shù)據(jù) ;
其中:地址=基地址+8; 
數(shù)據(jù)為8bit字節(jié),作為允許啟動標(biāo)志,定義為:
D0----為1時,允許通道1啟動,為0時不啟動;
D1----為1時,允許通道2啟動,為0時不啟動;
D2----為1時,允許通道3啟動,為0時不啟動;
D3----為1時,允許通道4啟動,為0時不啟動。
停止脈沖通道工作:
停止脈沖通道工作操作格式:
a、(*地址)=  數(shù)據(jù) ;
其中:地址=基地址+9; 
數(shù)據(jù)為8bit字節(jié),作為允許停止標(biāo)志,定義為:
D0----為1時,允許通道1停止,為0時不停止;
D1----為1時,允許通道2停止,為0時不停止;
D2----為1時,允許通道3停止,為0時不停止;
D3----為1時,允許通道4停止,為0時不停止。
回讀數(shù)據(jù)鎖存:
CPU要讀相應(yīng)功能的數(shù)據(jù),就必須先鎖存其數(shù)據(jù),才能讀;否則,只能讀取上次鎖存的數(shù)據(jù)。共有下面三種功能數(shù)據(jù):
	脈沖計數(shù)器值:32bit;
	通用輸入口值:8bit;
	按鍵編碼值:7bit;
CPU讀數(shù)據(jù)是按8 bit字節(jié)讀方式進(jìn)行的,32 bit脈沖計數(shù)器值需要讀4次,可按0~3任意順序讀取。8 bit值只能從地址0讀取。格式為:
a、(*鎖存地址)=  任意數(shù)據(jù);
b、變量=(*讀地址);
其中:鎖存地址和讀地址,可參見地址分配表一。
8/8位通用輸入/輸出口:
該芯片包含8位通用輸入口和8位通用輸出口。
8位通用輸入口讀命令為:
a、(*鎖存地址)=  任意數(shù)據(jù);
b、變量=(*讀地址);
其中:鎖存地址=基地址+12;
            讀地址    =基地址+0;(所有讀地址相同)
8位通用輸出口寫命令為:
a、(*寫地址)=  數(shù)據(jù);
其中:寫地址=基地址+11;
            寫數(shù)據(jù)為8位字節(jié)數(shù)據(jù)。
8X8鍵盤接口:
該芯片支持8X8矩陣鍵盤,自動掃描鍵盤,識別按鍵鍵碼,CPU通過接口可讀取當(dāng)前按鍵編碼值。命令如下:
a、(*鎖存地址)=  任意數(shù)據(jù);
b、變量=(*讀地址);
其中:鎖存地址=基地址+28;
            讀地址    =基地址+0;(所有讀地址相同)
按鍵編碼格式:
標(biāo)志位:為1表示有鍵正按下,為0表示沒有按鍵;
X:忽略;
回讀碼:取0~7為當(dāng)前按鍵所對應(yīng)的行(或列)編碼,特指輸入線(KBC_0~7);
掃描碼:取0~7為當(dāng)前按鍵所對應(yīng)的列(或行)編碼;特指輸出線(KBS_0~7);
七、編程示例
//A、地址常量定義:(設(shè)芯片基地址為0xe000)
#define   MC_sys_CLK                                       32000000                                             //定義芯片工作頻率
#define   MC_CNT_WR_Base_Addr                 (volatile unsigned char *) 0xe000     //定義計數(shù)器值寫基地址
#define   MC_CNT_Latch_WR_Base_Addr     (volatile unsigned char *) 0xe00A    //定義計數(shù)器鎖存寫基地址
#define   MC_FRQ_WR_Base_Addr                (volatile unsigned char *) 0xe004     //定義頻率值寫基地址
#define   MC_Startup_WR_Base_Addr            (volatile unsigned char *) 0xe008     //定義啟動寫基地址
#define   MC_Stop_WR_Base_Addr                 (volatile unsigned char *) 0xe009     //定義停止寫基地址
#define   MC_GPOut_WR_Base_Addr             (volatile unsigned char *) 0xe00B     //定義通用輸出值寫基地址
#define   MC_GPIn_Latch_WR_Base_Addr    (volatile unsigned char *) 0xe00C     //定義通用輸入值鎖存寫基地址
#define   MC_KB_Latch_WR_Base_Addr       (volatile unsigned char *) 0xe01C     //定義鍵盤編碼值鎖存寫基地址
#define   MC_ RD_Base_Addr                           (volatile unsigned char *) 0xe000     //定義回讀值讀基地址
//B、子程序片:
//0、延遲子程序:芯片讀/寫命令間要求有一定的定時間隔。
void delay(int n)
{     int i;
      for( i = 0; i
在上述的方案里,除了1-4軸運(yùn)動控制本身之外,在板上根本不需要譯碼器、鎖存器之類的芯片,按鍵掃描電路也節(jié)省了不少M(fèi)CU帶寬開銷,數(shù)字量通用輸出/輸入也增加了系統(tǒng)的控制方便性。
英文標(biāo)題::
The Simple Motion-Control  IC Solution Based on SOPC
參考文獻(xiàn):
無
作者簡介:
於鳳兵  男,   資深工程師     從事集成電路技術(shù)及業(yè)務(wù)多年,現(xiàn)任深圳市斯邁迪科技發(fā)展有限公司總經(jīng)理。
胡軍艦  男,  資深高級工程師	   從事集成電路技術(shù)及信號處理技術(shù)多年,現(xiàn)任深圳市斯邁迪科技發(fā)展有限公司技術(shù)總監(jiān)。
聯(lián)系方式:
深圳市南山區(qū)科技園科豐路8號金達(dá)科技中心601
電話: 0755-26506310
標(biāo)簽:
                                
                            
上一篇:電液伺服閥自動測試方法的研究
傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動網(wǎng)(connectcrack.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>2025-10-31
勇梅機(jī)械液壓閘門給煤機(jī)的優(yōu)點(diǎn)
2025-10-22
2025-10-17
2025-10-11
「一體機(jī)性價比王者」NK290M普及型數(shù)控...
2025-10-09
2025-09-23