图像处理——blackfin 533(十二)
0赞在得到图像的特征矢量后,需要通过串口传送到主控计算机,与期望的图像特征矢量做差,产生图像空间的误差。
BF533中,UART遵循异步通信协议:5~8位数据位;1, 1/2或2位的停止位;无奇偶校验、奇校验或偶校验;波特率=系统时钟频率/(16*分频系数),分频系数可以是1~65536中的任意数。系统工作在默认的100MHz系统时钟下,且设定通讯的波特率为9600,则分频系数应为651。
Blackfin533中,与异步通信UART有关的控制寄存器主要有:全局控制寄存器UART_GCTL、分频系数寄存器UART_DLL和UART_DLH、发送保持寄存器UART_THR、发送移位寄存器UART_TSR、线路控制寄存器UART_LCR和线路状态寄存器UART_LSR等。
初始化时,首先使能UART时钟;然后设置波特率,置UART_LCR的DLAB位为1,将分频系数读入到UART_DLL和UART_DLH中。最后清除DLAB位,将UART设置成8位数据位、一位停止位、无奇偶校验位,自此,UART便可进行通信;
数据发送的状态主要是检测UART_LSR的THRE位和TEMT位。若THRE=0,表明UART_THR不空,此时不能读取新的数据;若THRE=1,表明UART_THR已空,UART可以进行下一帧数据的读取。由于将UART设置成8位数据位,若要读取16位的数据,可先读取数据的低8位,将数据右移8位后再进行读取。此时需要检测UART_LSR的TEMT位。若TEMT=0,表明UART_TSR和UART_THR至少一个不为空,数据需要继续发送;若TEMT=1,表明UART_TSR和UART_THR均为空,数据发送结束。
这样就完成了对数据的传输,剩下的步骤就是给机械臂的关节伺服系统了,这里就不啰嗦了。