a. CLK_IN(输入):此为主时钟。该时钟的频率远高于波特时钟。使用该时钟采样和检测START输入的下降沿。
b. BAUD_CLK(输入):波特时钟频率乘以过采样率。此时钟输入的最小值是波特频率的两倍。
c. START(输入):该输入的下降沿代表状态机的开始。
d. COUNT(输入):8位帧宽度,用于初始化倒计时定时器周期。
e. FRAME_VALID(输出):该输出信号在START输入的下降沿变高,当计数器结束时变低。
f. IRQ(输出): 该输出的上升沿代表帧结束。当计数器计数结束时,该信号在一个主时钟周期内保持高电平。当状态机返回空闲状态时,值复位为 ‘0’。
a. Platform_Start():必须在执行任何操作前调用;启动接口。
b. Platform_Stop():必须在退出主脚本之前调用;停止接口,并显示最后的通信错误信息(如果有)。
c. Platform_GetSupportedBaud():返回支持的波特率列表。
d. Platform_ReportError($_):设置错误值,用于确定最后的错误。
e. Platform_CheckPassFail($_):如果输入是1,通过;否则失败。
f. Platform_COMMAND($_):从支持列表中向平台发送一个命令。
g. Platform_WriteConfig():将整个数据包从脚本发送至MCU。发送配置之前应使用额外的API设置参数。
h. Platform_ReadConfig():显示来自MCU的当前配置。
i. Platform_CopyConfig():将MCU配置复制到本地脚本缓冲器。并显示被复制的值。
j. Platform_SetBaudRate($_):在本地缓冲器中设置波特率数值;直到调用Platform_WriteConfig()时,才能将该值发送到MCU。
k. Platform_SetDataWidth($_):在本地缓冲器设置数据宽度值;直到调用Platform_WriteConfig()时,才能将该值发送到MCU。
l. Platform_SetParityBit($_):在本地缓冲器中设置校验位值;直到调用Platform_WriteConfig()时,才能将该值发送到MCU。
m. Platform_SetStopWidth($_):在本地缓冲器中设置停止宽度值;直到调用Platform_WriteConfig()时,才能将该值发送到MCU。
n. Platform_SetOverSampleRate($_):在本地缓冲器中设置过采样值;直到调用Platform_WriteConfig()时,才能将该值发送到MCU。
o. Platform_SetTXSize($_):设置一次会话中发送帧的数量;直到调用Platform_WriteConfig()时,才能将该值发送到MCU。
p. Platform_GetRXSize($_):返回RX缓冲器中帧的数量。
q. Platform_SetRXSize($_):在本地缓冲器中设置从PSoC3 RX缓冲器中读取的值的数量;直到调用Platform_WriteConfig()时,才能将该值发送到MCU。
r. Platform_SetTXDataArray(@_):设置一个会话中要发送的数据帧。这个API会覆盖利用Platform_SetTXSize($_) API设置的值(如果有);直到调用Platform_WriteConfig()时,才能将该值发送到MCU。
s. Platform_IsDUTReady():如果DUT空闲,返回1;如果DUT被占用,返回0。 七、硬件实现
设计采用如下主要组件:
a. Baud_PWM:生成一个是所选波特率两倍的时钟。这样能确保数据的正确采样。
b. ShiftReg_TX:32位移位寄存器,用以将TX帧移出到DUT。
c. ShiftReg_RX:32位移位寄存器,用以从DUT移入RX帧。
d. UART_Counter_TX:递减计数器,为TX移位寄存器生成时钟输入,整个帧宽度内有效。
e. UART_Counter_RX:与UART_Counter_TX在设计上相同,为RX移位寄存器生成输入时钟。
f. Start_TX:控制寄存器,指示来自固件的TX帧的开始。
g. FrameWidth:计数器的输入,指示预期的帧宽度,考虑双倍采样率。
h. tx_irq:上升沿标志TX帧的移出已完成。
i. rx_irq:上升沿标志RX帧的移入已完成。
j. StartTest:用来标志在设置控制线之后,对DUT测试的开始。
k. Ready_IRQ:在来自DUT的上升沿进行触发,以指明测试状态就绪。
l. 其他IO组件:将控制信号发送到DUT,以便在测试开始前对其进行配置。