chương 1, nhóm thực hiện thiết kế hệ thống bồn cầu tự động sử dụng UML.1 Use case diagram Tất cả các phần của hệ thống tương tác với con người hoặc các tác nhân tự động sử dụng hệ thống cho một số mục đích và cả con người và tác nhân đều mong đợi hệ thống hoạt động theo những cách có thể dự đoán được. Trong UML, use case diagram được sử dụng để mô hình hóa các hành vi của một hệ thống hoặc một phần của hệ thống. Dựa theo các yêu cầu kĩ thuật đã được nêu trước đó, use case diagram của hệ thống bồn cầu tự động được thể hiện ở hình dưới.1 Use case diagram của hệ thống bồn cầu tự động Tác nhân duy nhất trong hệ thống bồn cầu tự động là người sử dụng, đây là vai trò của con người khi tương tác với hệ thống. Người sử dụng tương tác với hệ thống.
Do đó, biểu đồ use case cho thấy tác nhân có mối quan hệ với các chức năng của hệ thống: 7 Đóng/mở nắp bồn cầu, làm ấm nước, tự động xịt, sấy khô, xả nước, tự chiếu sáng. Người dùng hoàn toàn có thể tắt hoặc bật chức năng tự động nhằm mục đích vệ sinh hay bảo trì hệ thống.2 Class Diagram Biểu đồ lớp (Class Diagram) sẽ làm rõ các lớp, giao diện và mối quan hệ giữa chúng. Biểu đồ lớp liên quan đến mô tả hệ thống một cách tổng quan bao gồm các thuộc tính, hoạt động trong một lớp. Các thuộc tính và hoạt động có thể có của một hệ thống bồn cầu tự động được thể hiện trên hình dưới đây.2 Class diagram của hệ thống bồn cầu tự động Hệ thống bồn cầu tự động gồm hai phần chính là Toilet control và Software.
Toilet control là thành phần chính của hệ thống, có nhiệm vụ nhận tín hiệu từ các đầu vào như nút bấm,… đồng thời tương tác với phần mềm để điều khiển toilet. Phần mềm xử lý các trạng thái, nhận tín hiệu từ các cảm biến để đưa ra các tín hiệu gửi tới màn hình, toilet control,… 8 2.3 State Diagram Biểu đồ trạng thái (state diagram) để hiện luồng hoạt động của một thành phần hệ thống. Dưới đây là biểu đồ trạng thái của phần mềm hệ thống.3 State diagram của hệ thống bồn cầu tự động 2.4 Sequence Diagram Sơ đồ trình tự (Sequence diagram) thể hiện tương tác giữa một tập hợp các đối tượng của hệ thống. Sơ đồ trình tự bao gồm tất cả các thông báo cho một phần hoặc một trường hợp sử dụng.
Ở đây, nhóm sử dụng sơ đồ trình tự để thể hiện sự tương tác giữa phần cứng và phần mềm, và các tương tác cho trường hợp thông báo của hệ thống.1 Sequence Diagram cho hệ thống xịt vệ sinh Hình 2.4 Sequence diagram của hệ thống xịt vệ sinh Dựa vào sơ đồ trên, khi người dùng bấm nút xịt vệ sinh, phần mềm hệ thống sẽ nhận tín hiệu. Sau đó toilet control thự hiện điều khiển hệ thống vòi xịt vệ sinh cho người dùng. Sau khi xịt vệ sinh xong sẽ có hệ thống đèn thông báo đã thực hiện xong việc xịt vệ sinh cho người dùng.2 Sequence Diagram cho hệ thống sấy khô Hình 2.5 Sequence diagram của hệ thống sấy khô Sau khi kết thúc quá trình xịt, toilet control thực hiện điều khiển hệ thống sấy khô vệ cho người dùng. Sau khi sấy khô xong sẽ có hệ thống đèn thông báo đã thực hiện xong việc sấy khô cho người dùng.3 Sequence Diagram cho hệ thống xả nước tự động Hình 2.6 Sequence diagram của hệ thống xả nước tự động 11 Khi phát hiện người dùng ngồi xuống sử dụng bồn cầu, cảm biến sẽ gửi tín hiệu tới phần mềm.
Lúc này hệ thống bắt đầu thực hiện đếm thời gian tới khi cảm biến gửi tín hiệu người dùng đứng dậy để đưa ra chế độ xả nước phù hợp để gửi tới toilet control. Sau đó, toilet control gửi tín hiệu xuống hệ thống xả nước của bồn cầu.4 Sequence Diagram cho hệ thống làm ấm tự động Hình 2.7 Sequence diagram của hệ thống làm ấm tự động Cảm biến cảm nhận nhiệt độ từ môi trường rồi gửi tín hiệu tới phần mềm. Lúc này phần mềm sẽ so sánh nhiệt độ nhận được từ cảm biến với các ngưỡng đã thiết lập để đưa ra điều chỉnh về nhiệt độ phù hợp. Sau đó, tín hiệu này được gửi tới toilet control để điều khiển hệ thống làm ấm của bồn cầu.5 Sequence Diagram cho hệ thống chiếu sáng tự động Hình 2.8 Sequence diagram của hệ thống chiếu sáng tự động Khi có người dùng tiến lại gần bồn cầu sẽ, cảm biến hồng ngoại sẽ gửi tín hiệu tới phần mềm để xử lý.
Sau đó phần mềm gửi tín hiệu khởi động hệ thống chiếu sáng tới toilet control. Sau khi nhận được tín hiệu toilet control sẽ điều khiển việc bật đèn. Tương tự, khi người dùng không xuất hiện trong cảm biến hồng ngoại, hệ thống sẽ xử lý để tắt đèn chiếu sáng.2 Mô hình hóa hệ thống sử dụng SystemC Ngoài việc sử dụng UML, nhóm còn chọn systemC là ngôn ngữ thứ hai để thiết kế và mô hình hóa hệ thống bồn cầu tự động. Sơ đồ hệ thống của hệ thống bồn cầu tự động được mô tả trên hình dưới đây.9 Sơ đồ hệ thống bồn cầu tự động sử dụng SystemC Dựa vào yêu cầu kĩ thuật ở phần trước, nhóm sử dụng SystemC để thiết kế các đầu vào và đầu ra của hệ thống bồn cầu tự động được thể hiện như trên hình gồm các class sau: • Class main chứa các tín hiệu đầu vào đầu ra của hệ thống phục vụ cho việc mô phỏng.
• Class Toilet (Toilet control)chứa phần điều khiển hệ thống. • Class Software chứa tín hiệu về trạng thái của các chân chức năng. • Class DHT11 chứa tín về nhiệt độ của môi trường.1 Tín hiệu đầu vào/đầu ra của Toilet control Tên Input/Output Mô tả sw_user_en input Cảm biến khoảng cách vật sw_toilet_using input Cảm biến trọng lực sw_spray_en input Nút bấm xịt nước sw_sp_dr_auto_en input Nút bấm bật/tắt chế độ tự động xịt sấy sw_spray_mode input Nút bấm chọn kiểu xịt sw_auto_dis_en input Nút bấm bật/tắt tự động xả sw_de_ur input Cảm biến xác định đi nặng/đi nhẹ warm_en input Cảm biến nhiệt độ open_toilet_lid output Tín hiệu mở nắp bồn cầu led_using output Tín hiệu thông báo đang có người sử dụng spray_an output Tín hiệu chọn chế độ xịt: 1: xịt hậu môn 0: xịt cho phụ nữ user_flushes output Tín hiệu thông báo người dùng tự xả dis_de output Tín hiệu chọn chế độ xả nước: 1: đi nặng 0: đi nhẹ stt_ready output Tín hiệu trạng thái sẵn sàng stt_using output Tín hiệu trạng thái đang sử dụng stt_spraying output Tín hiệu trạng thái đang xịt vệ sinh stt_drying output Tín hiệu trạng thái đang sấy khô stt_discharge output Tín hiệu trạng thái đang xả nước warm_up_on output Tín hiệu mở hệ thống làm ấm nước 15 Bảng 2.2 Tín hiệu đầu vào/đầu ra của phần mềm hệ thống Tên Input/Output Mô tả stt_ready input Tín hiệu trạng thái sẵn sàng stt_using input Tín hiệu trạng thái đang sử dụng stt_spraying input Tín hiệu trạng thái đang xịt vệ sinh stt_drying input Tín hiệu trạng thái đang sấy khô stt_discharge input Tín hiệu trạng thái đang xả nước data_tem input Dữ liệu nhiệt độ ctl_warm_en output Đưa tín hiệu vào khối thanh ghi Bảng 2.3 Tín hiệu đầu vào/đầu ra của DHT11 Tên Input/Output Mô tả data_in inout Tín hiệu từ cảm biến nhiệt độ 2.3 Kết luận Trong chương này, nhóm đã trình bày việc mô hình hóa hệ thống bồn cầu tự động sử dụng hai công cụ là UML và SystemC. Từ đó, nhóm có thể hình dung tổng quan về hệ thống và các phần cần thiết để đáp ứng chỉ tiêu kĩ thuật đã nêu ra ở CHƯƠNG 1.
Công việc triển khai hệ thống được trình bày ở chương tiếp theo. THIẾT KẾ HỆ THỐNG (SYSTEM DESIGN) Chương này mô tả thiết kế chi tiết từng khối và toàn hệ thống bồn cầu tự động.1 Thiết kế phần cứng 3.1 Mô tả chức năng Hệ thống điều khiển bồn cầu tự động có các chức năng sau: • Tự động làm ấm nước và bệ ngồi khi nhiệt độ thấp. • Tự động mở nắp bồn cầu khi có người đến gần. • Tự động xịt, sấy, xả nước.
• Các chế độ xịt nước: o Xịt dành cho phụ nữ o Xịt hậu môn • Các chế độ xả: o Đi nặng o Đi nhẹ Mô tả hoạt động của bồn cầu khi có người sử dụng: • Khi có người đến gần nắp bồn cầu sẽ tự động mở lên. Hệ thống làm nóng sẽ tự động làm nóng khi nhiệt độ thấp. • Người sử dụng ngồi vào. Khi đi vệ sinh xong, người dùng sẽ chọn kiểu xịt và bấm nút xịt nước.
Nếu tự động xịt, sấy được chọn, bồn cầu sẽ đưa vòi xịt và xịt theo kiểu xịt mà người dùng đã chọn trong 20 giây. Sau đó chuyển sang chức năng sấy khô trong 20 giây. • Sau khi sấy khô hoặc người dùng không chọn chức năng tự động xịt, sấy thì sẽ chuyển sang bước xả nước. Người dùng đứng lên khỏi bệ ngồi thì bồn cầu sẽ tự động xả nước theo một trong hai chế độ đi nặng hoặc đi nhẹ.2 Thiết kế sơ đồ ASMD (Algorithm State Machine and Datapath) Từ mô tả chức năng và hoạt động của hệ thống điều khiển bồn cầu tự động, xác định được năm trạng thái: 17 • IDLE: trạng thái IDLE, hệ thống sẽ trong trạng thái chờ người sử dụng.
• USING: trạng thái có người sử dụng. • SPRAY: trạng thái bồn cầu xịt. • DRYING: trạng thái sấy khô. • DISCHARGE: trạng thái xả nước.1 Sơ đồ ASMD 18 Từ sơ đồ ASMD ta xác định được sơ đồ khối giao tiếp giữa control unit và datapath của hệ thống: Hình 3.2 Sơ đồ khối Control Unit và Datapath STT Tên tín hiệu Độ rộng Chiều Mô tả (bit) 1 reg_user_en 1 input Cảm biến khoảng cách vật 2 reg_toilet_using 1 input Cảm biến trọng lực 3 reg_spray_en 1 input Nút bấm xịt nước 4 reg_sp_dr_auto_en 1 input Nút bấm bật/tắt chế độ tự động xịt sấy 5 reg_spray_mode 1 input Nút bấm chọn kiểu xịt 6 reg_auto_dis_en 1 input Nút bấm bật/tắt tự động xả 7 reg_de_ur 1 input Cảm biến xác định đi nặng/đi nhẹ 8 open_toilet_lid 1 output Tín hiệu mở nắp bồn cầu 9 led_using 1 output Tín hiệu thông báo đang có người sử dụng 10 spray_an 1 output Tín hiệu chọn chế độ xịt: 1: xịt hậu môn 0: xịt cho phụ nữ 11 user_flushes 1 output Tín hiệu thông báo người dụng tự xả 12 dis_de 1 output Tín hiệu chọn chế độ xả nước: 1: đi nặng 0: đi nhẹ 19 3.3 Thiết kế khối register_block cho system_controller Hình 3.3 Các thanh ghi trong system_controller Thiết kế khối register block có giao tiếp APB được mô tả bằng ngôn ngữ verilog.4 Thiết kế rtl Phần thiết kế được mô tả trong source code tại thư mục hdl.