我有 6 个气体传感器,它们连接到我用作 ADC 的 Arduino uno 板。每个传感器的输出将是一个介于 0 和 1023 之间的数字。数据从 Arduino 传输到 Altera FPGA 进行处理。
我将数字的二进制形式发送到 Arduino 的输出引脚(串行数据),并通过接收来自 FPGA 的“写入”信号,该数据将以大约 10kHz(0.1ms 周期)串行传输到 FPGA 的输入端口。
串行传输后如何在FPGA中重建原始数字?
要将串行转换为并行,您需要一些方法来识别序列的结束或开始。像下面这样的东西应该让你开始:
input clk;
input end_of_sequence;
input sdata;
output reg [9:0] result;
//10 bit transmission
reg [9:0] pdata;
always @(posedge clk) begin
// Shift serial data in
pdata <= {pdata[8:0, sdata};
end
always @(posedge clk) begin
if (end_of_sequence ) begin
// at end of shifted data store the full parallel word
result <= pdata;
end
end