新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CAN總線控制器的IP核代碼

        CAN總線控制器的IP核代碼

        作者: 時間:2012-09-26 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/170814.htm

        wire cs;

        /* Output signals from can_btl module */

        wire clk_en;

        wire sample_point;

        wire sampled_bit;

        wire sampled_bit_q;

        wire tx_point;

        wire hard_sync;

        wire resync;

        /* output from can_bsp module */

        wire rx_idle;

        wire transmitting;

        wire last_bit_of_inter;

        wire set_reset_mode;

        wire node_bus_off;

        wire error_status;

        wire [7:0] rx_err_cnt;

        wire [7:0] tx_err_cnt;

        wire rx_err_cnt_dummy; // The MSB is not displayed. It is just used for easier calculation (no counter overflow).

        wire tx_err_cnt_dummy; // The MSB is not displayed. It is just used for easier calculation (no counter overflow).

        wire transmit_status;

        wire receive_status;

        wire tx_successful;

        wire need_to_tx;

        wire overrun;

        wire info_empty;

        wire set_bus_error_irq;

        wire set_arbitration_lost_irq;

        wire [4:0] arbitration_lost_capture;

        wire node_error_passive;

        wire node_error_active;

        wire [6:0] rx_message_counter;

        wire tx_out;

        wire tx_oen;

        wire rst;

        wire we;

        wire [7:0] addr;

        wire [7:0] data_in;

        reg [7:0] data_out;

        /* Connecting can_registers module */

        can_registers i_can_registers

        (

        .clk(clk_i),

        .rst(rst),

        .cs(cs),

        .we(we),

        .addr(addr),

        .data_in(data_in),

        .data_out(data_out_regs),

        .irq(irq_o),

        .sample_point(sample_point),

        .transmitting(transmitting),

        .set_reset_mode(set_reset_mode),

        .node_bus_off(node_bus_off),

        .error_status(error_status),

        .rx_err_cnt(rx_err_cnt),

        .tx_err_cnt(tx_err_cnt),

        .transmit_status(transmit_status),

        .receive_status(receive_status),

        .tx_successful(tx_successful),

        .need_to_tx(need_to_tx),

        .overrun(overrun),

        .info_empty(info_empty),

        .set_bus_error_irq(set_bus_error_irq),

        .set_arbitration_lost_irq(set_arbitration_lost_irq),

        .arbitration_lost_capture(arbitration_lost_capture),

        .node_error_passive(node_error_passive),

        .node_error_active(node_error_active),

        .rx_message_counter(rx_message_counter),

        /* Mode register */

        .reset_mode(reset_mode),

        .listen_only_mode(listen_only_mode),

        .acceptance_filter_mode(acceptance_filter_mode),

        .self_test_mode(self_test_mode),

        /* Command register */

        .clear_data_overrun(),

        .release_buffer(release_buffer),

        .abort_tx(abort_tx),

        .tx_request(tx_request),

        .self_rx_request(self_rx_request),

        .single_shot_transmission(single_shot_transmission),

        /* Arbitration Lost Capture Register */

        .read_arbitration_lost_capture_reg(read_arbitration_lost_capture_reg),

        /* Error Code Capture Register */

        .read_error_code_capture_reg(read_error_code_capture_reg),

        .error_capture_code(error_capture_code),

        /* Bus Timing 0 register */

        .baud_r_presc(baud_r_presc),

        .sync_jump_width(sync_jump_width),

        /* Bus Timing 1 register */

        .time_segment1(time_segment1),

        .time_segment2(time_segment2),

        .triple_sampling(triple_sampling),

        /* Error Warning Limit register */

        .error_warning_limit(error_warning_limit),

        /* Rx Error Counter register */

        .we_rx_err_cnt(we_rx_err_cnt),

        /* Tx Error Counter register */

        .we_tx_err_cnt(we_tx_err_cnt),

        /* Clock Divider register */

        .extended_mode(extended_mode),

        .clkout(clkout_o),

        /* This section is for BASIC and EXTENDED mode */

        /* Acceptance code register */

        .acceptance_code_0(acceptance_code_0),

        /* Acceptance mask register */

        .acceptance_mask_0(acceptance_mask_0),

        /* End: This section is for BASIC and EXTENDED mode */

        /* This section is for EXTENDED mode */

        /* Acceptance code register */

        .acceptance_code_1(acceptance_code_1),

        .acceptance_code_2(acceptance_code_2),

        .acceptance_code_3(acceptance_code_3),

        /* Acceptance mask register */

        .acceptance_mask_1(acceptance_mask_1),

        .acceptance_mask_2(acceptance_mask_2),

        .acceptance_mask_3(acceptance_mask_3),

        /* End: This section is for EXTENDED mode */

        /* Tx data registers. Holding identifier (basic mode), tx frame information (extended mode) and data */

        .tx_data_0(tx_data_0),

        .tx_data_1(tx_data_1),

        .tx_data_2(tx_data_2),

        .tx_data_3(tx_data_3),

        .tx_data_4(tx_data_4),

        .tx_data_5(tx_data_5),

        .tx_data_6(tx_data_6),

        .tx_data_7(tx_data_7),

        .tx_data_8(tx_data_8),

        .tx_data_9(tx_data_9),

        .tx_data_10(tx_data_10),

        .tx_data_11(tx_data_11),

        .tx_data_12(tx_data_12)

        /* End: Tx data registers */

        );

        assign irq_on = ~irq_o;

        /* Connecting can_btl module */

        can_btl i_can_btl

        (

        .clk(clk_i),

        .rst(rst),

        .rx(rx_i),

        /* Mode register */

        .reset_mode(reset_mode),

        /* Bus Timing 0 register */

        .baud_r_presc(baud_r_presc),

        .sync_jump_width(sync_jump_width),

        /* Bus Timing 1 register */

        .time_segment1(time_segment1),

        .time_segment2(time_segment2),

        .triple_sampling(triple_sampling),

        /* Output signals from this module */

        .clk_en(clk_en),

        .sample_point(sample_point),

        .sampled_bit(sampled_bit),

        .sampled_bit_q(sampled_bit_q),

        .tx_point(tx_point),

        .hard_sync(hard_sync),

        .resync(resync),

        /* output from can_bsp module */

        .rx_idle(rx_idle),

        .transmitting(transmitting),

        .last_bit_of_inter(last_bit_of_inter)

        );

        can_bsp i_can_bsp

        (

        .clk(clk_i),

        .rst(rst),

        /* From btl module */

        .sample_point(sample_point),

        .sampled_bit(sampled_bit),

        .sampled_bit_q(sampled_bit_q),

        .tx_point(tx_point),

        .hard_sync(hard_sync),

        .addr(addr),

        .data_in(data_in),

        .data_out(data_out_fifo),

        .fifo_selected(data_out_fifo_selected),



        關鍵詞: 代碼 IP 控制器 總線 CAN

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 即墨市| 林甸县| 土默特右旗| 绥芬河市| 淄博市| 绩溪县| 弥渡县| 岳池县| 无极县| 筠连县| 舟曲县| 静海县| 绥化市| 沭阳县| 西峡县| 九江县| 平果县| 武宣县| 建宁县| 开封县| 庆安县| 苗栗县| 大名县| 高陵县| 扶风县| 滨州市| 芜湖县| 海淀区| 汽车| 黄平县| 武汉市| 甘孜| 秭归县| 霍州市| 汉阴县| 江西省| 邵阳县| 隆德县| 兴安盟| 晋城| 昌乐县|