Thiết kế và mô hình hoá khối giao tiếp truyền thông nối tiếp đồng bộ dùng trong vi điều khiển
TÓM TẮT
Các dòng vi điều khiển thế hệ mới luôn yêu cầu phải có một giao thức truyền thông phù
hợp, cho phép các vi điều khiển này có thể giao tiếp với các thiết bị ngoại vi hoặc với các
nền tảng khác. Serial Peripheral Interface( SPI) là một giao thức truyền thông nối tiếp
đồng bộ cho phép các thiết bị có thể kết nối với nhau dễ dàng mà không yêu cầu quá nhiều
tài nguyên của hệ thống. Bài báo này tập trung vào việc nghiên cứu, thiết kế và mô hình
hoá một khối điều khiển giao tiếp theo giao thức SPI để xây dựng một khối giao tiếp cho hệ
vi điều khiển đang được thiết kế. Các kết quả mô phỏng hoạt động ở mức logic của khối
giao tiếp này cũng được trình bày cụ thể trong bài báo.
Bạn đang xem tài liệu "Thiết kế và mô hình hoá khối giao tiếp truyền thông nối tiếp đồng bộ dùng trong vi điều khiển", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Thiết kế và mô hình hoá khối giao tiếp truyền thông nối tiếp đồng bộ dùng trong vi điều khiển
TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học – Đại học Huế Tập 4, Số 1 (2016) 23 THIẾT KẾ VÀ MÔ HÌNH HOÁ KHỐI GIAO TIẾP TRUYỀN THÔNG NỐI TIẾP ĐỒNG BỘ DÙNG TRONG VI ĐIỀU KHIỂN Phan Hải Phong*, Hoàng Lê Hà,Nguyễn Văn Ân, Hồ Đức Tâm Linh Khoa Điện tử - Viễn thông, Trường Đại học Khoa học – Đại học Huế *Email:phongph@husc.edu.vn TÓM TẮT Các dòng vi điều khiển thế hệ mới luôn yêu cầu phải có một giao thức truyền thông phù hợp, cho phép các vi điều khiển này có thể giao tiếp với các thiết bị ngoại vi hoặc với các nền tảng khác. Serial Peripheral Interface( SPI) là một giao thức truyền thông nối tiếp đồng bộ cho phép các thiết bị có thể kết nối với nhau dễ dàng mà không yêu cầu quá nhiều tài nguyên của hệ thống. Bài báo này tập trung vào việc nghiên cứu, thiết kế và mô hình hoá một khối điều khiển giao tiếp theo giao thức SPI để xây dựng một khối giao tiếp cho hệ vi điều khiển đang được thiết kế. Các kết quả mô phỏng hoạt động ở mức logic của khối giao tiếp này cũng được trình bày cụ thể trong bài báo. Từ khóa: SPI, vi điều khiển, vi xử lý. 1. MỞ ĐẦU Ngày nay, với sự phát triển của công nghệ bán dẫn thì việc nghiên cứu và phát triển các thế hệ vi mạch tích hợp (Integrated Circuit - IC) mới là một sự phát triển tất yếu của ngành công nghiệp điện tử hiện đại. Các vi mạch mới ra đời ngày càng có hiệu năng cao, chất lượng vượt trội và giá thành giảm. Với kích thước các transistor càng được thu nhỏ thì các vi mạch càng được tích hợp thêm nhiều tính năng trên cùng một đế silic nhưng vẫn đảm bảo được tốc độ hoạt động cao và kích thước nhỏ gọn. Bên cạnh đó, sự phát triển của các hệ thống điện tử, tự động hoá, các hệ thống nhúng đã đặt ra yêu cầu về việc cần phải có các thế hệ vi điều khiển (Microcontroller Unit – MCU) mới có tốc độ hoạt động cao và tích hợp thêm nhiều thiết bị ngoại vi. Điều này đặt ra cho lĩnh vực thiết kế vi mạch điện tử một hướng nghiên cứu quan trọng, đó là phát triển các thế hệ vi điều khiển mới có tốc độ cao hơn, hoạt động ổn định hơn và đặc biệt là phải tích hợp được thêm nhiều tính năng tiên tiến hơn. Nghiên cứu, thiết kế và chế tạo các thế hệ vi điều khiển mới luôn là một hướng nghiên cứu nhận được nhiều sự chú ý không chỉ của các nhà nghiên cứu mà còn có cả các công ty thiết kế và sản xuất vi mạch. Các dòng vi điều khiển mới không chỉ được nâng cao về tốc độ, số bit xử lý song song như các dòng PIC16, PIC24, PIC32 của Microchip [1][2], mà còn phải được tích hợp thêm nhiều khối chức năng đặc biệt khác như các dòng PSOC (Programmbale System- on-Chip) của Cypress [3]. Bên cạnh đó, các nghiên cứu mới không chỉ hướng tới việc tích hợp thêm nhiều tính năng đặc biệt cho vi điều khiển như: điều khiển fuzzy logic [4], tích hợp các bộ Thiết kế, mô hình hoá và mô phỏng kiểm chứng khối giao tiếp truyền thông nối tiếp đồng bộ - SPI 24 giao tiếp không dây Radio-frequency identification (RFID) [5][6], mà những nghiên cứu này còn hướng đến việc thiết kế vi điều khiển với những công nghệ mới để giảm thiểu năng lượng tiêu thụ [7][8][9]... Các thế hệ MCU mới ra đời đồng thời cũng đặt ra yêu cầu cần phải có các phương thức giao tiếp tương ứng để hỗ trợ kết nối giữa MCU với những thiết bị ngoại vi khác. Để có thể xây dựng nên một lõi vi điều khiển có khả năng ứng dụng cao thì một khối giao tiếp truyền thông như thế cần phải được tích hợp vào trong lõi vi xử lý (Central Processing Unit - CPU) nhằm giúp lõi đó giao tiếp với các thiết bị ngoại vi thông dụng. Hiện nay, hai phương thức truyền thông phổ biến hiện đang được áp dụng nhiều cho các dòng MCU đó chính là Inter-Integrated Circuit (I2C) và Serial Peripheral Interface (SPI). Chuẩn giao tiếp I²C [10] được giới thiệu lần đầu tiên vào năm 1982 với mục đích là cung cấp một phương thức thuận tiện để cho phép kết nối giữa CPU với các vi mạch ngoại vi của ti-vi. Trước đây, một phương pháp phổ biến để thực hiện việc kết nối này đó là sử dụng các bus địa chỉ và dữ liệu song song. Nhưng cùng với sự phát triển của các thiết bị ngoại vi thì số lượng các thiết bị cần kết nối tăng lên, điều này dẫn đến việc phải tăng thêm số lượng dây dẫn bus trên mạch in, cũng như cần thêm các tín hiệu điều khiển khác. Để tiết kiệm số lượng chân của MCU, cũng như để đơn giản hoá việc thiết kế mạch in thì phòng thí nghiệm Philips (Eindhoven – Hà Lan) đã phát minh ra chuẩn giao tiếp I²C cho phép kết nối với các thiết bị ngoại vi chỉ với hai đường tín hiệu và tốc độ truyền thông đạt từ 100Kbps cho đến 3.4 Mbps (đối với các ngoại vi yêu cầu tốc độ cao). SPI cũng là một chuẩn truyền thông nối tiếp đồng bộ được Motorola phát triển và lần đầu tiên được giới thiệu vào năm 1979 (tích hợp trên vi điều khiển Motorola 68000) [11]. Khác với chuẩn I2C, chuẩn giao tiếp SPI không có một đặc tả chính xác mà chỉ là các đặc tả tham chiếu và việc phát triển ứng dụng là hoàn toàn phụ thuộc vào người thiết kế. Chính vì vậy mà người dùng hoàn toàn có thể thiết kế và tuỳ biến chuẩn giao tiếp này theo ý của mình để đạt được hiệu quả sử dụng cao nhất. Trong bài báo này, chúng tôi tập trung vào việc nghiên cứu về chuẩn giao tiếp SPI, từ đó xây dựng mô hình và mô hình hoá một khối điều khiển giao tiếp SPI bằng ngôn ngữ mô tả phần cứng VHDL. Mô hình của khối giao tiếp này sau khi được mô hình hoá sẽ được mô phỏng để kiểm tra hoạt động ở mức logic trên phần mềm Model Sim. 2. THIẾT KẾ VÀ MÔ HÌNH HÓA LÕI GIAO TIẾP NỐI TIẾP SPI 2.1 Chuẩn giao tiếp truyền thông nối tiếp đồng bộ SPI Phương thức truyền thông SPI được thực hiện thông qua giao tiếp bốn đường tín hiệu như ở 0[12]. Các tín hiệu này được mô tả cụ thể như sau: Tín hiệu xung nhịp (SCLK): Tín hiệu này được gửi từ thiết bị chủ (Master) đến tất cả các thiết bị tớ (Slaver). Tất cả các tín hiệu khác trong SPI phải đồng bộ theo tín hiệu xung nhịp này. TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học – Đại học Huế Tập 4, Số 1 (2016) 25 Tín hiệu dữ liệu nối tiếp từ thiết bị Master đến thiết bị Slaver - Master Out Slaver In (MOSI). Tín hiệu dữ liệu nối tiếp từ thiết bị Slaver đến thiết bị chủ - Master In Slaver Out (MISO). Tín hiệu lựa chọn thiết bị Slaver SS\: đây là tín hiệu được sử dụng để chọn ra thiết bị Slaver nào sẽ kết nối với thiết bị Master. Hình 1. Mô hình giao tiếp giữa hai thiết bị theo chuẩn SPI. Chuẩn SPI là một chuẩn giao tiếp nối tiếp đồng bộ cho phép kết nối giữa hai thiết bị theo mô hình Master – Slaver (master – slave). Theo mô hình này, một thiết bị trung tâm (thiết bị Master) sẽ có thể kết nối được với nhiều thiết bị Slaver. Có nhiều kỹ thuật khác nhau để một thiết bị Master có thể bắt tay với thiết bị Slaver, tuy nhiên phương thức phổ biến nhất đó là mỗi thiết bị Slaver sẽ có một tín hiệu lựa chọn SS\ khác nhau như 0. Các tín hiệu SCLK, MOSI và MISO sẽ được sử dụng chung để tiết kiệm tài nguyên. Để bắt tay với một thiết bị Slaver, thiết bị Master sẽ phát ra tín hiệu lựa chọn thiết bị bằng cách đưa tín hiệu lựa chọn (SS\) tương ứng với thiết bị đó xuống mức thấp để báo hiệu thiết bị Slaver nào được chọn. Đồng thời nó cũng kích hoạt tín hiệu xung nhịp để đồng bộ giữa thiết bị Master và thiết bị Slaver đó. Thiết bị Master sẽ tiến hành gửi dữ liệu nối tiếp cho thiết bị Slaver trên đường tín hiệu MOSI và nhận lại dữ liệu trên đường tín hiệu MISO. Hình 2. Mô hình giao tiếp Master - Slaver của chuẩn giao tiếp SPI. Chuẩn SPI có tổng cộng bốn chế độ hoạt động, được phân biệt dựa trên hai thông số: CPOL (chỉ thị mức của tín hiệu xung) và CPHA (chỉ thị pha của tín hiệu xung). Các thiết bị Master và thiết bị Slaver phải sử dụng chung một chế độ để giao tiếp được chính xác. Nếu CPOL có giá trị “không” thì tín hiệu SCLK thường ở mức thấp và xung đầu tiên được tính tại Thiết kế, mô hình hoá và mô phỏng kiểm chứng khối giao tiếp truyền thông nối tiếp đồng bộ - SPI 26 cạnh lên của tín hiệu. Nếu CPOL có giá trị “một” thì tín hiệu SCLK thường ở mức cao và xung khởi đầu được tính tại cạnh xuống của tín hiệu. Nếu CPHA có giá trị “không”, bit đầu tiên của dữ liệu sẽ được ghi lên bus tại thời điểm cạnh xuống của xung SS\, và sẽ được đọc tại sườn đầu tiên của xung SCLK. Nếu CPHA có giá trị “một”, dữ liệu sẽ được ghi tại sườn đầu tiên của xung SCLK và được đọc tại sườn thứ hai của xung đó. Giản đồ thời gian của bốn chế độ hoạt động được minh hoạ như trong 0. Hình 3. Giản đồ xung của bốn chế độ hoạt động của giao thức SPI. 2.2 Xây dựng mô hình khối giao tiếp SPI Master (SPI Master - SPIm) Để thiết bị Master có thể giao tiếp được với các thiết bị Slaver qua giao thức SPI, một khối điều khiển truyền thông SPI Master phải được xây dựng để điều khiển quá trình truyền thông này. Khối này có nhiệm vụ nhận các yêu cầu truyền thông và dữ liệu cần gửi đi ở dạng song song từ thiết bị Master. Khối SPIm sẽ xác định chế độ truyền và thực hiện việc bắt tay cũng như điều khiển quá trình truyền thông với thiết bị tớ. Dữ liệu từ thiết bị Slaver gửi về cũng sẽ được khối này chuyển từ dạng nối tiếp thành song song và chuyển lại cho thiết bị Master. Để có thể giao tiếp với thiết bị Master một cách thuận tiện nhất, trong mô hình của khối SPIm, chúng tôi đưa ra các tín hiệu bắt tay và tín hiệu dữ liệu được mô tả như ở trong 0. Hình 4. Tín hiệu vào ra trên khối SPI Master (SPIm). Chức năng và mô tả cụ thể của từng tín hiệu trong khối này được chỉ ra như ở trong 0. TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học – Đại học Huế Tập 4, Số 1 (2016) 27 Bảng 1. Mô tả các tín hiệu trong khối SPIm Tín hiệu Độ rộng bit Chế độ vào/ra Mô tả chức năng clock 1 in Xung nhịp hệ thống reset_n 1 in Tín hiệu reset không đồng bộ, kích hoạt ở mức thấp enable 1 in Mức cao “H”: chốt các thiết lập, địa chỉ, dữ liệu để sẵn sàng cho quá trình truyền. Mức thấp “L”: không có quá trình truyền nào được yêu cầu. cpol 1 in Thiết lập thông số CPOL. cpha 1 in Thiết lập thông số CPHA. cont 1 in Cờ báo chế độ liên tục. clk_div 32 in Thiết lập tốc độ truyền. Giá trị đưa vào sẽ là số chu kỳ xung nhịp chia cho ½ chu kỳ của SCKL. addr 32 in Địa chỉ của thiết bị tớ. Các thiết bị Slaver được đánh địa chỉ bắt đầu từ giá trị 0. tx_data n in Dữ liệu cần truyền. miso 1 in Tín hiệu truyền dữ liệu nối tiếp MISO sclk 1 buffer Xung nhịp đồng bộ cho SPI. ss_n K buffer Tín hiệu lựa chọn thiết bị tớ. mosi 1 out Tín hiệu nhận dữ liệu nối tiếp MOSI. busy 1 out Tín hiệu báo dữ liệu đã sẵn sàng hay chưa. rx_data n out Dữ liệu nhận được. Hoạt động của khối SPIm được mô tả bằng một máy trạng thái với hai trạng thái chính là: ready và execute (0). Khi có tín hiệu reset_n của hệ thống, khối SPIm chuyển vào trạng thái ready để chờ một quá trình truyền. Trong trạng thái này, các tín hiệu lựa chọn thiết bị Slaver SS\ sẽ được chuyển lên mức cao để không một thiết bị Slaver nào được chọn. Tín hiệu MOSI cũng được treo ở trạng thái có trở kháng cao (mức Z). Khi tín hiệu enable có giá trị “1”, báo hiệu chuẩn bị một quá trình truyền. Khối SPIm sẽ thực hiện việc chốt địa chỉ, chuyển dữ liệu nhận được từ thiết bị Master vào trong bộ nhớ đệm, gửi các tín hiệu báo hiệu đến thiết bị tớ. Sau đó, trạng thái ready sẽ được chuyển thành trạng thái execute để thực hiện việc truyền dữ liệu với thiết bị tớ. Hình 5. Mô hình máy trạng thái để thực hiện quá trình truyền thông trên SPIm. Đoạn mã VHDL để mô tả thực thể của khối SPIm được trình bày như bên dưới. Thiết kế, mô hình hoá và mô phỏng kiểm chứng khối giao tiếp truyền thông nối tiếp đồng bộ - SPI 28 ENTITY spi_master IS GENERIC( slaves : INTEGER := 4; d_width : INTEGER := 2); PORT( clock : IN STD_LOGIC; reset_n : IN STD_LOGIC; enable : IN STD_LOGIC; cpol : IN STD_LOGIC; cpha : IN STD_LOGIC; cont : IN STD_LOGIC; clk_div : IN INTEGER; addr : IN INTEGER; tx_data : IN STD_LOGIC_VECTOR(d_width-1 DOWNTO 0); miso : IN STD_LOGIC; sclk : BUFFER STD_LOGIC; ss_n : BUFFER STD_LOGIC_VECTOR(slaves-1 DOWNTO 0); mosi : OUT STD_LOGIC; busy : OUT STD_LOGIC; rx_data : OUT STD_LOGIC_VECTOR(d_width-1 DOWNTO 0)); END spi_master; 2.3 Xây dựng mô hình khối giao tiếp SPI Slaver (SPI Slaver - SPIs) Với thiết bị tớ, một khối điều khiển giao tiếp SPI Slaver - SPIs cũng cần phải được xây dựng để thực hiện quá trình bắt tay với thiết bị Master, cũng như đảm nhận việc giao tiếp dữ liệu với thiết bị tớ. Khối SPIs sẽ thực hiện việc bắt tay với thiết bị Master khi được lựa chọn giao tiếp. Khối này sẽ đảm nhận việc nhận dữ liệu nối tiếp từ thiết bị Master, chuyển dữ liệu này thành song song và gửi cho thiết bị tớ. Đồng thời, khối SPIs cũng sẽ đọc dữ liệu ở dạng song song từ thiết bị Slaver để chuyển thành dữ liệu nối tiếp và gửi cho thiết bị chủ khi có yêu cầu đọc dữ liệu. Để có thể bắt tay giao tiếp với các thiết bị tớ, các tín hiệu của khối SPIs được đề xuất theo như mô hình ở 0. Hình 6. Tín hiệu vào ra trên khối SPI Slaver (SPIs). Chức năng và mô tả cụ thể của từng tín hiệu trên khối SPIs được trình bày như ở trong 0. TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học – Đại học Huế Tập 4, Số 1 (2016) 29 Bảng 2. Mô tả các tín hiệu trong khối SPIs Tín hiệu Độ rộng bit Chế độ vào/ra Mô tả sclk 1 in Xung nhịp cho SPI mosi 1 in Đường dữ liệu nối tiếp MOSI miso 1 out Đường dữ liệu nối tiếp MISO ss_n 1 in Tín hiệu lựa chọn thiết bị tớ, kích hoạt ở mức thấp. busy 1 out Tín hiệu báo bận: có giá trị ‘1’ khi đang truyền dữ liệu với thiết bị chủ, có giá trị ‘0’ khi sẵn sàng giao tiếp với thiết bị tớ. reset_n 1 in Tín hiệu khởi động lại hệ thống, kích hoạt ở mức thấp tx_load_en 1 in Tín hiệu chốt dữ liệu cần truyền vào thanh ghi đệm truyền tx_load_data n in Dữ liệu từ thiết bị tớ, gửi đến thanh ghi đệm truyền rx_req 1 in Yêu cầu gói dữ liệu nhận được cuối cùng từ thiết bị chủ. rx_data n out Dữ liệu cuối cùng nhận được từ thiết bị chủ. trdy 1 buffer Tín hiệu báo sẵn sàng truyền. Có giá trị ‘1’ khi khối SPIs đã đưa dữ liệu vào thanh ghi đệm truyền nhưng vẫn chưa truyền đi. rrdy 1 buffer Tín hiệu báo sẵn sàng nhận. Có giá trị ‘1’ khi SPIs đã nhận đủ dữ liệu từ thiết bị chủ nhưng thiết bị Slaver vẫn chưa yêu cầu nhận. roe 1 buffer Tín hiệu báo lỗi nhận tràn. Có giá trị ‘1’ khi có thêm dữ liệu từ thiết bị chủ truyền đến, nhưng dữ liệu cũ vẫn chưa được nhận xong bởi thiết bị tớ. st_load_en 1 in Tín hiệu báo kích hoạt chốt trạng thái. st_load_trdy 1 in Tín hiệu báo giá trị của trdy đã được chốt st_load_rrdy 1 in Tín hiệu báo giá trị của rrdy đã được chốt st_load_roe 1 in Tín hiệu báo giá trị của roe đã được chốt 3. KẾT QUẢ MÔ PHỎNG VÀ NHẬN XÉT Để đánh giá hoạt động của các khối SPIm và SPIs ở mức logic sau khi mô hình hoá bằng ngôn ngữ VHDL, chúng tôi sử dụng phần mềm mô phỏng ModelSim phiên bản 6.5 để mô phỏng và kiểm chứng các hoạt động của từng khối. Một chương trình đánh giá (testbench) sẽ được xây dựng để tạo ra các tín hiệu điều khiển và dữ liệu tương tự như các thiết bị chủ và thiết bị Slaver được gắn với các khối SPIm và SPIs. Chương trình này sẽ tạo ra các dữ liệu ngẫu nhiên để gửi và nhận giữa hai thiết bị này. Bằng cách quan sát giản đồ xung của quá trình mô phỏng, chúng ta sẽ đánh giá hoạt động của các khối được thiết kế có đúng với yêu cầu đặt ra hay không. Đối với mô phỏng cho khối SPIm, chúng tôi thử mô phỏng truyền một khối dữ liệu 4 bit với giá trị “1101” (được đánh dấu như trên 0). Thiết lập khối SPIm hoạt động ở chế độ “00” và kiểu truyền là không liên tục (cont = ‘0’). Sau khi thiết lập các giá trị cho tín hiệu điều khiển và Thiết kế, mô hình hoá và mô phỏng kiểm chứng khối giao tiếp truyền thông nối tiếp đồng bộ - SPI 30 tiến hành chạy mô phỏng, chúng tôi nhận định tín hiệu trên đường truyền MOSI có giá trị đúng như giá trị của dữ liệu cần truyền. Hình 7. Mô phỏng truyền một khối dữ liệu ở chế độ không liên tục trên khối SPIm. Đối với khối SPIs, chúng tôi tiến hành mô phỏng khối này hoạt động ở chế độ “00” như ở 0. Khi khối SPIs đang ở trạng thái rỗi, thiết bị Slaver sẽ đưa tín hiệu tx_load_en lên mức cao đồng thời gửi dữ liệu “10101010” lên bus tx_load_data. Tín hiệu trdy chuyển lên mức cao báo hiệu một dữ liệu đã gửi đến và đang đợi truyền đi. Thiết bị chủ sẽ khởi động một quá trình truyền với lệnh “00000000”, để chỉ thị khối SPIs nhận dữ liệu trên đường MOSI và lưu vào thanh ghi đệm nhận, đồng thời gửi dữ liệu trong thanh ghi đệm truyền lên đường MISO. Khi bit dữ liệu cuối cùng được truyền xong, tín hiệu tdry chuyển về mức thấp để báo hiệu dữ liệu trong thanh ghi đệm truyền đã được gửi đến thiết bị chủ. Tương tự, khi khối SPIs nhận được bit dữ liệu cuối cùng và lưu vào thanh ghi đệm nhận, tín hiệu rrdy sẽ được đưa lên mức cao để báo hiệu một dữ liệu mới đã được nhận hoàn chỉnh. Lúc này, thiết bị Slaver sẽ phát tín hiệu rx_req và khối SPIs sẽ gửi dữ liệu nhận được từ thiết bị chủ “10110001” lên bus rx_data. Hình 8. Mô phỏng truyền dữ liệu trên khối SPIs. 4. KẾT LUẬN Trong bài báo này, chúng tôi đã tiến hành nghiên cứu, tìm hiểu về chuẩn SPI, một chuẩn truyền thông được sử dụng phổ biến cho các MCU để giúp những MCU này giao tiếp với các thiết bị ngoại vi một cách thuận tiện. Sau một thời gian nghiên cứu và tìm hiểu các đặc tả mô tả hoạt động của chuẩn giao tiếp này, chúng tôi đã đề xuất được một mô hình cho các khối TẠP CHÍ KHOA HỌC VÀ CÔNG NGHỆ, Trường Đại học Khoa học – Đại học Huế Tập 4, Số 1 (2016) 31 giao tiếp SPIm và SPIs. Đây là các khối chức năng sẽ đảm nhận việc bắt tay với các thiết bị Master và thiết bị Slaver, sau đó thực hiện quá trình truyền thông theo giao thức SPI để truyền nhận dữ liệu giữa hai thiết bị Master - Slaver này. Mô hình được đề xuất cho các khối SPIm và SPIs đã được mô hình hoá thành công bằng ngôn ngữ mô tả phần cứng VHDL. Sau khi mô hình hoá, chúng tôi đã tiến hành mô phỏng hoạt động của hai khối này trên phần mềm mô phỏng ModelSim. Kết quả mô phỏng thu được đã chứng tỏ hoạt động ở mức logic của các khối được thiết kế hoàn toàn đúng với các yêu cầu đặt ra ban đầu. Các khối SPIm và SPIs hoàn toàn đáp ứng với các đặc tả hoạt động của giao thức truyền thông SPI và có thể ứng dụng để xây dựng thành các khối chức năng đảm nhận vai trò truyền thông cho các MCU. LỜI CẢM ƠN Bài báo này được thực hiện trong khuôn khổ đề tài nghiên cứu khoa học cấp Đại học Huế - mã số: DHH2014-01-54. TÀI LIỆU THAM KHẢO [1]. Microchip (2013). Software & Hardware Solutions for the 32-bit Designer. [2]. Microchip (2013). PIC24 Microcontroller Family. [3]. Cypress (2013). PSoC - Programmable System-On-Chip. [4]. Khan. S.A, Hossain.M.I (2010). Design and implementation of microcontroller based fuzzy logic control for maximum power point tracking of a photovoltaic system, Electrical and Computer Engineering (ICECE), 2010 International Conference, pp.322-325. [5]. Vuza. D.T, Frosch. R, Koeberl. H (2007). A Long Range RFID Reader Based on the Atmel AT91SAM7S64 Micro-Controller”, Electronics Technology, 30th International Spring Seminar, pp.445-450. [6]. Guang-li Long (2011). Design of reader device for radio frequency Card based on microcontroller unit STC89C52, Multimedia Technology (ICMT), 2011 International Conference, pp.3493-3496. [7]. Erdas. N, Gunduzalp. M (1999). Design of an 8 bit general purpose microcontroller with sea-of- gates design style, Microelectronics, 1999. ICM '99. The Eleventh International Conference, pp.177-180. [8]. Krauss. R, Croxell. J (2012). A low-cost microcontroller-in-the-loop platform for controls education, American Control Conference (ACC), pp.4478-4483. [9]. Mabuchi. Y, Nakamura. A, Ohmae. A, Uno. T, Ichikawa. K, Mizuno. H (2009). Development of a Low EMI Micro-controller Package for Automobile Applications, Electromagnetic Compatibility, 2009 20th International Symposium, Zurich, pp.377-380. Thiết kế, mô hình hoá và mô phỏng kiểm chứng khối giao tiếp truyền thông nối tiếp đồng bộ - SPI 32 [10]. Philips Semiconductors (2000). The I2C-Bus Spectification, Ver 2.1. [11]. Motorola, Inc (2000). SPI Block guide, Ver 3.06. [12]. STMicroelectronics (2013). SPI Protocol. DESIGNING AND MODELING A SYNCHORONOUS SERIAL COMMUNICATION INTERFACE MODULE USING IN MICROCONTROLLER Phan Hai Phong * , Hoang Le Ha, Nguyen Van An, Ho Duc Tam Linh Department of Electronics - Telecommunications, Hue University College of Sciences *Email:phongph@husc.edu.vn ABSTRACT Communication protocol for new – generation microcontroller families is always required so that these microcontrollers are able to communicate with peripherals or other platforms. Serial Peripheral Interface (SPI) is a synchronous serial communication protocol allowing devices to connect easily with each other with low-cost system resources. This article focuses on the investigation, design, and modeling of a SPI controller to make up an interface module for a designed microcontroller. Results of modeling which refer to the operation of this module in logical level are shown in this article as well. Keywords: SPI, microcontroller, microprocessor.
File đính kèm:
- thiet_ke_va_mo_hinh_hoa_khoi_giao_tiep_truyen_thong_noi_tiep.pdf