基于TLl6C550C的DSP異步串行通信的實(shí)現(xiàn)
2.2 TLl6C2550C的讀寫
TLl6C550C的讀信號為,RD2,當(dāng)為低電平或RD2為高電平,且TLl6C550C被選中時(shí),可進(jìn)行讀操作;寫信號為,WR2,當(dāng)為低電平或WR2為高電平,且TLl6C550C被選中時(shí),可進(jìn)行寫操作。將、RD2、、WR2都與CPLD的I/0相連,便可通過CPLD來控制TLl6C550C的讀寫。本文引用地址:http://m.butianyuan.cn/article/157329.htm
3 TLl6C550C和PC通信的軟件編程
該套系統(tǒng)的軟件設(shè)計(jì)部分主要包括PC機(jī)程序、DSP初始化、TLl6C550C初始化和數(shù)據(jù)發(fā)送/接收以及雙方的通信協(xié)議等。本文著重介紹TLl6C550C的初始化程序。主要由以下幾部分組成:
◇波特率的設(shè)定;波特率除數(shù)寄存器由高8位(DLM)和低8位(DLL)組成。除數(shù)的值可由UART的工作時(shí)鐘和波特率共同確定,其計(jì)算公式為:
除數(shù)=時(shí)鐘頻率/(期望的波特率×16)
例如本系統(tǒng)中時(shí)鐘頻率12 MHz,波特率設(shè)置為9600,則除數(shù)的值為12,應(yīng)在初始化程序中設(shè)置DLM=OOH,DLL=4eH;
◇增強(qiáng)功能的使能及設(shè)置EFR的相關(guān)位;
◇完成有關(guān)收/發(fā)FIF0的設(shè)定,主要是MCR/TCR/TLR三個(gè)寄存器的設(shè)置;
◇傳輸數(shù)據(jù)格式設(shè)定,包括8位數(shù)據(jù)位、1位停止位以及無校驗(yàn);
◇設(shè)置FIFO控制以及中斷控制寄存器。
此外,在完成設(shè)置前,還應(yīng)注意:設(shè)定DLL和DLH前,LCR的第7位應(yīng)為1;地址相重疊的寄存器不能同時(shí)使能;讀寫RHR和THR時(shí),DSP的讀寫速度很快,故最好不要連續(xù)讀寫,而是在每讀、寫一次后延時(shí)一段時(shí)間。然后再進(jìn)行下一次讀寫。
由于TLl6C550C映射在DSP的CEO區(qū)間,所以在DSP訪問其寄存器時(shí)只需將基地址加上偏移量即可。其初始化源程序如下:
4 結(jié)束語
本文介紹了通過TLl6C550C擴(kuò)展串口完成TMS320C6416與PC機(jī)串行通信的設(shè)計(jì)方案,給出了硬件設(shè)計(jì)框圖及軟件實(shí)現(xiàn)代碼。該電路及軟件
經(jīng)實(shí)驗(yàn)證明能夠可靠地實(shí)現(xiàn)TMS320C416與PC機(jī)之間的通信,并且此方法已在實(shí)際的項(xiàng)目中得到應(yīng)用。
評論