Thông báo

Collapse
No announcement yet.

Lập trình đa nhiệm cho vi điều khiển

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    Nguyên văn bởi MinhHa
    Cái switch task cho tới hôm nay đã trỏ thành cái bình thường rồi. Chỉ cần 400 byte và vài chục byte RAM là làm được. Nhưng cái quan trọng của hệ điều hành là làm sao cho người dùng phát triển ứng dụng trên đó nhanh nhất. Khi đo, các thư viện hàm API trở nên quan trọng hơn. Dù với ứng dụng nào programmer cũng có sắn các hàm để dùng luôn. Các bạn hãy thử tham khảo mã nguồn của HDDH linuk. Phần kernel chỉ là một phần rất nhỏ. Quan trọng là các bộ phận đi kèm cơ.
    Hiện nay tôi thấy 1 HDH ngon cần có:
    - Kernel task.
    - TCP/IP stack.
    - Modem controler.
    - Webserver,telnet,ftp.
    - File system.
    - Database engine.
    - Peripherial driver.
    - Một số ba lăng nhăng điều khiển các thiết bị ngoài: ADC,DAC,RealTimer,....
    Mình mong muốn cải biên cái linux thành một hệ mở để mọi người cùng hưởng ứng và phát triển.
    Hệ điều hành là cái nền móng và đống gạch, gỗ, đá chưa thành hình. Bạn tùy ứng mà xây dựng nên sản phẩm. Không nên tự đóng gạch, xẻ gỗ để xây nhà==>hãy sử dụng HDH và post bài . .. . .
    Em biết anh MinhHa là người rất có kinh nghiệm hì hì đặc biệt trong công việc thực tế nhưn em thấy hệ điều hành anh làm đó được dùng trong các tổng đài viễn thông.Và có nghĩa là nó là thời gian thực mềm .Còn những thứ anh Cường muốn xây dựng là một hệ điều hành thời gian thực thực sự. Anh MinhHa thắc mắc tại sao không kế thừa các hệ điều hành khác như anh nói vì như thứ đó chỉ dùng cho các họ 16 bit trở lên mà giá các con 16 bit thì rất đắt .Bọn em có những wngs dụng không cần đến 16 bit nhưng tính thời gian thực vẫn phải là cứng vì dùng trong công nghiệp mà.

    Comment


    • #17
      Nếu dùng MCU 32 bit + RAM + ROM ( DRAM) chỉ đắt hơn khoảng dưới 30 USD như vậy chỉ bằng 5 ngày lương tối thiểu của kỹ sư chứ mấy. Nếu họ làm nhanh hơn 5 ngày so với MCU rẻ tiền hơn thì coi như hòa chứ sao lại đắt. Bọn Tây nó khác mình là ở chỗ đó. Ví dụ 1 DSP làm xử lý tín hiệu chẳng hạn mới dùng hết 20% tài nguyên nhưng vẫn dùng DSP khác để làm một việc mã hóa chẳng hạn Như vậy trên mạch sẽ có 2 DSP chứ khhong tích hợp thành 1. Tăng số lượng linh kiện khi đặt hàng cũng là cách giảm giá thành linh kiện đấy nhé.Ngoài ra như vậy sẽ kiểm soát tốt hơn.
      Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

      Biến tần
      Máy giặt
      Lò vi sóng
      Bếp từ.
      Tủ lạnh.
      Điều hòa

      Comment


      • #18
        Nguyên văn bởi MinhHa
        Nếu dùng MCU 32 bit + RAM + ROM ( DRAM) chỉ đắt hơn khoảng dưới 30 USD như vậy chỉ bằng 5 ngày lương tối thiểu của kỹ sư chứ mấy. Nếu họ làm nhanh hơn 5 ngày so với MCU rẻ tiền hơn thì coi như hòa chứ sao lại đắt. Bọn Tây nó khác mình là ở chỗ đó. Ví dụ 1 DSP làm xử lý tín hiệu chẳng hạn mới dùng hết 20% tài nguyên nhưng vẫn dùng DSP khác để làm một việc mã hóa chẳng hạn Như vậy trên mạch sẽ có 2 DSP chứ khhong tích hợp thành 1. Tăng số lượng linh kiện khi đặt hàng cũng là cách giảm giá thành linh kiện đấy nhé.Ngoài ra như vậy sẽ kiểm soát tốt hơn.
        Rất đồng ý với bác về quan điểm này. Để làm một project có cỡ như xử lý voice, video thì phương án mua một KIT phát triển FPGA hay KIT phát triển DSP lại là một phương án tối ưu hơn gấp nhiều lần so với việc mua link kiện rời rồi thiết kế và lắp ráp. Đó là ta đứng trên phương diện người phát triển dự án. Còn đối với những bài toán nhỏ, tiền rót vào ít thì vẫn phải cân nhắc rất nhiều và rất nhiều.

        Comment


        • #19
          DSP làm xử lý tín hiệu chẳng hạn mới dùng hết 20% tài nguyên nhưng vẫn dùng DSP khác để làm một việc mã hóa chẳng hạn Như vậy trên mạch sẽ có 2 DSP chứ khhong tích hợp thành 1.
          Quan điểm này không đồng ý lắm. Tại sao người ta muốn Onechip vì việc vẽ mạch tốc độ cao cho N bộ xử lý khó khăn gấp nhiều lần (hàm mũ) việc tích hợp gấp N bộ xử lý trên một IC. Đã làm việc có kiến trúc tốt thì không ai lại thích dùng N IC hơn một IC làm N chức năng cả. Chẳng qua có thể vì lý do time to market hoặc lý do update hệ thống nào đó họ mới làm thế thôi ví dụ khi cần có thể update thuật toán mã hóa mà không ảnh hưởng đến việc xử lý tín hiệu và đồng bộ chẳng hạn.
          Vẫn biết mỗi lần xa là một lần về lại...

          Comment


          • #20
            Nguyên văn bởi vutricongbka
            Không có ai viết tiếp giúp mình nhỉ ? Bận qua chưa thể viết tiếp được !
            Hi hi.. bận quá hay là hết cái để viết....

            Comment


            • #21
              Có thể bạn chưa hiểu ý mình rồi. Ở đây muốn nói tính kế thừa nữa. Ví dụ Mình có 1 sản phẩm đã hoàn chỉnh rồi như nghe trộm (....) chẳng hạn. Nó đã có chức năng nhận dạng, nén, ghi âm.Và 1 sản phẩm là MODEM. Nay muốn truyền về trung tâm thì vấn thiết kế cũ chỉ cần thêm vài TRACK trên PCB để nối 2 mạch lại là thành 1 sản phẩm mới. Thời gian không quá 3 giờ như vậy sẽ tối ưu hơn là tích hợp MODEM vào chip DSP của mạch nén tín hiệu.
              Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

              Biến tần
              Máy giặt
              Lò vi sóng
              Bếp từ.
              Tủ lạnh.
              Điều hòa

              Comment


              • #22
                Chào mọi người. Tôi đóng góp một chút

                Tôi trước đây theo đuổi các ứng dụng của RTOS, và đọc rất nhiều về các rtos nhỏ viết mcu 8 bit, chủ yếu là học tập.

                Thực chất muốn xác định "thời gian thực", nghĩa là ta phải xác định hệ quy chiếu của các hệ thống, quá trình liên tục của hệ thống theo thời gian so với hệ quy chiếu đó sẽ xác định tính realtime của task. Nghĩa là ta phải mô phỏng, tìm mô hình hoặc xác định phương trình của hệ thống cần điều khiển.

                Trong một rtos thì luôn tồn tại 2 kiểu task, kiểu thứ nhất là tuần hoàn theo timer, và loại thứ 2 là các task dưới dạng ngắt.

                Do rtos là 1 hệ đa nhiệm theo phương thức round-robin hoặc ưu tiên theo thứ tự, nên trước hết nó phải là 1 hệ đa nhiệm. Đồng hồ để kích hoạt các tiến trình không nhất thiết phải là đồng hồ on-chip, mà người ta thường sử dụng dao động 32.768kHz để là đồng hồ thời gian, vì nó chính xác 1s, do đó luôn xác định đúng thời gian thực của các task theo thời gian của thế giới bên ngoài, đồng thời trục thời gian cho các task khác luôn xác định được theo trục thời gian này.

                Tài liệu Linux kernel là tham khảo tốt nhất để thiết kế một hệ đa nhiệm, thông qua sự hiểu biết (chỉ cần chút ít) tư duy thiết kế Linux kernel. Do vậy, tôi nghĩ rằng các thuật toán FIFO, LIFO, tìm kiếm và sắp xếp trên ngôn ngữ C dùng con trỏ, là phương thức xắp xếp các task cho các thuật toán semaphore, event...

                Tôi rất quan tâm đến ứng dụng của rtos dựa trên mã nguồn Linux, nhưng tôi vẫn phải đang xác định các quá trình công nghiệp như lấy mẫu tín hiệu, điều khiển nhiệt độ, bộ đếm, hiển thị HMI... Từ đó tôi mới đi tiếp được trong rtos, vì cái khó nhất là xác định dải ứng dụng của nó. Do đó tôi đang bắt đầu phải học lại những kiến thức cơ bản nhất trong toán cao cấp và xử lý tín hiệu số.
                Opentdoors- Thành viên của Rock'n'Roll club

                Comment


                • #23
                  Nhớ học thêm môn ngôn ngữ lập trình nhé đại ca.
                  Vẫn biết mỗi lần xa là một lần về lại...

                  Comment


                  • #24
                    Bây giờ chủ yếu là làm trong lĩnh vực công nghiệp nên tôi làm việc nhiều với step7, winCC. Nếu có làm mạch thì chủ yếu là các mạch analog chế lại cho các dây chuyền, chủ yếu là PID cho ac/ac servo.

                    Trước đây thì chủ yếu asm cho 89c, với gcc mà chỉ cho vui thôi. Học chẳng qua chỉ là sở thích nghiên cứu các mcu có tích hợp adc 8/10 bit xem thử nó thay thế được các board analog đã làm hay không?

                    Chỉ có làm trong các cty như Kasaty, VTC... mới cần phải làm mạch in nhiều với mcu. Trong hệ thống điều khiển tự động, cần nhiều cái phải làm như giải nhiệt, khí nén, nhiệt độ, hệ thống cung cấp điện 3 pha... nên không còn đủ thời gian để ngồi hàn mạch.

                    Còn RTOS thỉnh thoảng lật ra đọc một tí cho khỏi quên, ngôn ngữ lập trình chỉ cần đọc lại các chỉ thị lệnh trước khi viết là được.
                    Opentdoors- Thành viên của Rock'n'Roll club

                    Comment


                    • #25
                      Trước đây tôi cứ nghĩ là sẽ làm nhiều với mcu điều khiển trong trên các dây chuyền sản xuất cáp, nhưng thực tế thì mua các sản phẩm từ Mitsu, Omron, Siemens lại hiệu quả hơn, tiết kiệm công sức và thời gian.

                      Khi chương trình bị lỗi, có thể đó là tai họa đấy. Nên đồ công nghiệp đắt là chỗ đó.
                      Opentdoors- Thành viên của Rock'n'Roll club

                      Comment


                      • #26
                        Vậy là đại cả đổi tư duy rồi. Chúc mừng.
                        Chia buồn. Câu hỏi đặt ra là làm sao các hãng như Ômron hay Siemen có sản phẩm ổn định thế.
                        Công nghệ họ cao?
                        Họ đã được dùng nhiều... hay
                        Vẫn biết mỗi lần xa là một lần về lại...

                        Comment


                        • #27
                          Để đạt đến độ tin cậy như họ cần phải chuyên nghiệp trong nghề. Thời gian test sản phẩm, thương hiệu, hậu mãi.

                          Tôi dám chắc là sản phẩm của họ phải qua nhiều thất bại, được làm từ nhiều người, và họ được trả lương từ chính sự tin cậy của sản phẩm đó.
                          Opentdoors- Thành viên của Rock'n'Roll club

                          Comment


                          • #28
                            Nguyên văn bởi opentdoors
                            Để đạt đến độ tin cậy như họ cần phải chuyên nghiệp trong nghề. Thời gian test sản phẩm, thương hiệu, hậu mãi.

                            Tôi dám chắc là sản phẩm của họ phải qua nhiều thất bại, được làm từ nhiều người, và họ được trả lương từ chính sự tin cậy của sản phẩm đó.
                            Tình cờ, bên ttvnol, em thấy anh Opentdoors có nói về việc anh dùng RTOS cho 8051. Vậy anh có thể phổ biến vấn đề này ko?

                            Comment


                            • #29
                              Chắc rồi cũng post lại về RTOS cho 89c ở đây, chỉ là cách thể hiện dưới dạng ngôn ngữ asm cách thực hiện 1 rtos.

                              Ngán tới tận cổ cái RTOS rồi.
                              Opentdoors- Thành viên của Rock'n'Roll club

                              Comment


                              • #30
                                Chào vutricongbka, cho mình hỏi tí
                                Mình cũng rất thường xuyên phải lập trình đa nhiệm cho VĐK, nhằm giải quyết bài toán thời gian thực. Tuy nhiên, khi gặp các bài toán mà tốc độ xử lý của VĐK có giới hạn, số lượng công việc lại quá nhiều, đòi hỏi thời gian thực... buộc mình phải tính tới huớng đa xử lý (cụ thể xử lý song song nhằm chia tải, không phải là master-slave), giống như lập trình hệ thống bên mạng máy tính. Bác có kinh nghiệm gì hay tài liệu về cách giải quyết này không

                                Comment

                                Về tác giả

                                Collapse

                                vutricongbka Tìm hiểu thêm về vutricongbka

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X