LED Controler – pio_0 – led_green

Một phần của tài liệu Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính (Trang 56)

Hình 3-11: Led control

Led control gồm 8 tín hiệu điều khiển tương ứng với 8 led green được tích hợp trên KIT Altera DE2.

wire [7:0]led_green;

Bóng đèn ngoại vi được điều khiển nhờ vào tín hiệu của led green, từ đó, led green trên KIT sáng thì bóng đèn ngoại vi cũng sáng.

output wire lamp,

assign lamp = ~led_green_export[0];

3.2.8. Avalon Bus

 Quá trình đọc dữ liệu từ cổng Slave

Trong suốt quá trình này chân read_n và chipselect phải được kích hoạt. Một đơn vị dữ liệu sẽ được chuyển từ cổng slave đến Avalon bus module với kích thước bằng với độ rộng tối đa của cồng slave. Như vậy, trong module giao tiếp ta phải có lệnh để khi Avalon bus thiết lập một quá trình đọc từ cổng slave, thiết kế của ta phải đáp ứng lại chính xác dữ liệu muốn truyền lên. Có thể thực hiện việc này bằng các lệnh sau:

always @(posedge clk) begin

57 read_data <= data

end

Hình sau mô tả các chân kết nối cần thiết giữa cổng slave từ component mà ta thiết kế với Avalon bus module.

Hình 3-12: Giao tiếp giữa cổng Slave và Avalon Bus Module trong quá trình đọc từ Slave

Quá trình truyền này cụ thể gồm các giai đoạn: module Avalon bus nhận địa chỉ và tín hiệu read_n, giải mã địa chỉ và tạo ra tín hiệu chipselect, dữ liệu được cổng slave truyền lên. Hình sau mô tả chi tiết về thời gian trong quá trình đọc từ cổng slave.

58 Quá trình mô tả trên chỉ là quá trình đọc cơ bản từ các cổng slave. Ngoài ra, ta có thể đọc từ cổng slave với nhiều cách( phụ thuộc vào thiết kế) như: đọc có trạng thái chờ, đọc có thời gian cài đặt…

 Quá trình ghi dữ liệu qua cổng Slave

Trong quá trình này, tín hiệu write_n và chipselect sẽ được kích hoạt. Dữ liệu sẽ được truyền từ Avalon bus module ra cổng slave. Trong trường hợp cổng này chưa đáp ứng được, thì quá trình truyền phải có trạng thái chờ. Ta có thể đơn giản hoá thực thi này bằng các dòng lệnh sau trong module thiết kế:

always @(posedge clk) begin

write_cycle <=( !write_n) & chipselect; data <= write_data;

end

Và sau khi module không đáp ứng kịp với tốc độ truyền dữ liệu từ Avalon bus module ta có thể bật tín hiệu waitrequest lên. Sơ đồ khối các tín hiệu giao tiếp trong quá trình ghi và thời gian của quá trình này được trình bày trong hình sau.

Hình 3-14: Các tín hiệu giao tiếp và thời gian trong khi ghi dữ liệu ra cổng slave

59

Thiết kế giao diện điều khiển trên máy tính. 3.3

Sử dụng phần mềm Visual Studio 2010 thiết kế giao diện trên máy tính bằng Windows Form Application của C#. Chương trình này được dùng khá phổ biến, phù hợp để thiết kế giao tiếp bởi giao diện thân thiện với người dùng.

Hệ thống được kết nối với máy tính thông qua đường Rs232( sử dụng mạch chuyển USB sang Rs232) với tốc độ Baud là 57600.

Trên máy tính, có giao diện điều khiển được viết bằng C#, CPU Nios II sẽ nhận lệnh từ máy tính để điều khiển đèn, quạt và hiển thị thông báo trên LCD của kit.

Giao diện điều khiển cơ bản gồm các đối tượng chính:

 2 button dùng để bật, tắt đèn

 3 button tương ứng với 3 chế độ của quạt và 1 button dùng để tắt quạt. (adsbygoogle = window.adsbygoogle || []).push({});

 2 button kết nối và ngắt kết nối.

 1 button thoát chương trình

 2 label hiển thị trạng thái của đèn và quạt.

 2 picturebox giúp hiển thị một cách trực quan các trạng thái.

 1 timer để hiển thị trạng thái của quạt.

 1 SerialPort Com

 1 ImageList

 3 groupBox

60

Giao diện chương trình:

Hình 3-15: Giao diện chương trình chính

61 Màu xanh hiển thị trên button cho thấy mạch đang hoạt động ở chức năng đó. Ví dụ hình 3.16 là hệ thống đang ngắt kết nối, đèn tắt, quạt tắt.

Lưu đồ thuật toán 3.4

3.4.1. Quá trình gửi

62 Chương trình của Nios II sẽ được nạp lên SRAM ON CHIP. Quá trình hoạt động sẽ được điều khiển từ trên máy tính bằng cách sử dụng giao diện, lệnh này sẽ được truyền đến KIT thông qua đường UART( Rs232 Serial Port)

Cụ thể khi button Số 1( btnSo1) được nhấn, máy tính sẽ gửi xuống một kí tự “1”(FAN1)

Tương tự khi button Số 2( btnSo2) được nhấn, máy tính sẽ gửi xuống một kí tự “2”(FAN2).

Khi button Số 3( btnSo3) được nhấn, máy tính sẽ gửi xuống một kí tự “3”(FAN3)

Khi button Tắt quạt( btnTatQ) được nhấn, máy tính sẽ gửi xuống một kí tự “0”(FAN_OFF).

Button Bật đèn( btnBatD) được nhấn, máy tính sẽ gửi xuống một kí tự “4”(LAMP_ON).

Button Tắt đèn( btnTatD) được nhấn, máy tính sẽ gửi xuống một kí tự “5”(LAMP_OFF)

Một phần của tài liệu Triển khai hệ thống nhúng trên NIOS và điều khiển thiết bị qua máy tính (Trang 56)